在Swift类中,我想将属性用作同一类的方法的默认参数值。使用属性作为同一类中方法的默认参数值
这里是我的代码:
class animal {
var niceAnimal:Bool
var numberOfLegs:Int
init(numberOfLegs:Int,animalIsNice:Bool) {
self.numberOfLegs = numberOfLegs
self.niceAnimal = animalIsNice
}
func description(animalIsNice:Bool = niceAnimal,numberOfLegs:Int) {
// I'll write my code here
}
}
的问题是,我不能用我的niceAnimal属性作为默认函数值,因为它触发了我一个编译时错误:
'animal.Type' 没有一个名为 'niceAnimal'
我是乐队成员有什么问题?或者在Swift中不可能?如果这是不可能的,你知道为什么吗?
非常感谢您的回答。作为开发者,你对这种行为有什么看法? – 2014-11-23 06:37:33
我不确定。我认为默认的参数值是一个很好的方便,但是它们也可能会导致关于何时评估默认表达式的令人惊讶和复杂的角落案例。我知道它在Python中变得混乱。所以我可以看到保持清晰和有限的美德。我认为解决方法并不是很糟糕。 – algal 2014-11-23 06:41:09
好吧,我明白,苹果可能想保持简单,然后... – 2014-11-23 06:46:40