ios - 直接调用 Swift 枚举实例方法会创建实例吗?

标签 ios macos swift enums

假设我有一个枚举,例如:

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() 方法即可。

关于ios - 直接调用 Swift 枚举实例方法会创建实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32462039/

相关文章:

macos - Mac OS X中的麦克风和扬声器是哪个/dev/...(设备)?

macos - 如何在 Mac 上运行的 glut 程序中检测命令键作为修饰符?

Swift Eureka - 捕获 MultivaluedSection 删除操作

arrays - Swift:在数组中查找值并返回特定键

ios - Fabric : Digits not working iOS 10

ios - NotificationCenter.default.addObserver 未访问该方法

Git 在切换分支时不删除文件

swift - 更改时更新 Swift NSTextfield 变量

android - 如何在 Flutter 的 ListView 项目中使用 Showcase View?

ios - 使用 iOS swift AVPlayer 在横向模式下不全屏