当您使用getter 和setter定义变量/属性,以致该语言不会自动生成后备变量时,这叫什么?
例如在Swift中,我们可以定义一个modalViewController
属性,该属性不会创建后备变量:
extension MyViewController {
var modalViewController: UIViewController? {
get { return self.presentedViewController }
set { self.present(newValue, animated: true) }
}
}
描述modalViewController
属性的正确术语是什么?
我知道,如果只有它是可获取的,它将被称为计算属性:
extension Int {
var isEven: Bool {
get { return self % 2 == 0 }
}
}
但是,我正在为可设置和可获取的术语寻找术语。
我正在寻找一个术语的原因是,我想问一个与这些类型的属性有关的问题,并且希望使用通用的,不含糊的语言。我以为这将被称为virtual property,但它似乎不是virtual has a different meaning in OOP的正确名称。
即使他们也有一个二传手,斯威夫特(至少)calls these "computed properties"(加了强调):
除了存储的属性之外,类,结构和枚举还可以定义计算的属性,而实际上不存储值。相反,它们提供了一个getter 和一个可选的setter以间接检索和设置其他属性和值。