假设我有一个枚举,例如:
enum AnimalType {
case Dog
case Cat
func barks() -> Bool {
switch self {
case Dog:
return true
case Cat:
return false
}
}
}
如果我要执行以下操作:
func pickAnimal(shouldBark: Bool) {
switch shouldBark {
case AnimalType.Dog.barks():
println("you should pick dogs")
case AnimalType.Cat.barks():
println("you should pick cats")
default:
println("don't pick cats or dogs")
}
}
调用
AnimalType.Dog.barks()
或AnimalType.Cat.barks()
会实例化AnimalType
吗? 最佳答案
是的,在这些示例中,AnimalType.Dog.barks()
实例化了AnimalType
。
毕竟,barks()
是一个实例方法。除实例外,不能调用它。
实例的生命周期将非常短。足够长的时间来调用barks()
方法,仅此而已。