我只是好奇 Swift 是像 php 一样是动态的还是静态的,我的意思是我可以在应用程序运行时生成类吗?
最佳答案
它是静态的——非常静态。编译器必须在编译时拥有关于所有类和函数的所有信息。您可以“扩展”现有类(使用 extension
),但即便如此,您也必须在编译时完全定义该扩展包含的内容。
Objective-C 是动态的,因为在现实生活中,您可能会在 Cocoa 存在的情况下使用 Swift,您可以使用 Objective-C 运行时在暴露给 Objective 的 Swift 类中注入(inject)/调整方法-C。即使您使用的是 Swift 语言,也可以这样做。但是 Swift 本身 是静态的,实际上是明确设计的,目的是尽量减少或消除 Objective-C 类型动态的使用。
关于swift - Swift 是动态语言还是静态语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29924477/