我如何创建一个Swift变量,在某些条件下它可以返回不同的值,但通常它只返回自身?

我如何创建一个Swift变量,在某些条件下它可以返回不同的值,但通常它只返回自身?,swift,Swift,假设我有一个名为favoriteFood的变量,它是一个字符串。例如,它位于视图控制器上 我希望它是一个正常的变量,你可以得到和设置。但在非常特定的情况下,我希望能够返回自定义值,例如: var-favoriteFood:String{ 如果是星期四{ 返回“胡萝卜” }否则{ 回馈喜爱的食物 } } 但这会触发大量错误和警告,我再也无法设置它了 我应该如何执行此操作?为favoriteFood创建一个私有支持属性,并创建一个自定义getter和setter。setter应该将值设置为back

假设我有一个名为
favoriteFood
的变量,它是一个
字符串。例如,它位于视图控制器上

我希望它是一个正常的变量,你可以得到和设置。但在非常特定的情况下,我希望能够返回自定义值,例如:

var-favoriteFood:String{
如果是星期四{
返回“胡萝卜”
}否则{
回馈喜爱的食物
}
}
但这会触发大量错误和警告,我再也无法设置它了


我应该如何执行此操作?

favoriteFood
创建一个私有支持属性,并创建一个自定义getter和setter。setter应该将值设置为backing属性,而getter要么返回
“carrots”
(如果满足条件),要么返回backing属性的值

private var _favoriteFood: String = ""

var favoriteFood: String {
    get {
        if isTuesday {
            return "carrots"
        } else {
            return _favoriteFood
        }
    }

    set {
        _favoriteFood = newValue
    }
}

你能告诉我们更多关于你的用例吗?一个简单的计算属性可能是合适的,但具体取决于您想要实现什么,使用多态性可能更好。