阅读Swift语言指南,我找不到明确的信息,无论Swift是静态分派(如basic C++、Java、C#)还是动态分派(如Objective)。
语言特性(如类、扩展、泛型等)的文档似乎表明它是静态类型的,这可能是所谓的速度改进的来源。然而,苹果在2014年WWDC主题演讲中表示,该语言使用与目标C相同的运行时,并且与Cocoa/Cocoa非常兼容,后者建议动态调度。
发布于 2014-06-03 06:21:43
静态地描述C++、Java和C#并不特别准确。这三种语言都可以而且经常使用动态分派。
同样地,斯威夫特也可以兼而有之。它与ObjC的不同之处在于,它并不总是动态分派。标记为@final的方法可以被静态分派,struct和enum方法也可以。我相信,如果可以在编译时验证运行时类型(类似于C++去虚拟化),可以静态地分派非最终方法,但我不确定其中的细节。
发布于 2014-06-03 06:33:29
根据Y组合器(https://news.ycombinator.com/item?id=7835099)的摘录:
从用户的角度来看,它基本上是铁锈的书,所有的肉汁与放松的所有权和语法。 它有所有的1:静态类型,类型推断,显式可变,闭包,模式匹配,选项(用自己的语法!还有“任意”,泛型,接口,弱所有权,元组,加上其他漂亮的东西,如速记语法,最终和显式覆盖. 它尖叫着“现代的!”,拥有所有最新的循环功能。它甚至配备了一个轻型桌子/布列特-胜利者风格的游乐场。但仍然是一种实用的语言,看上去平易近人,直截了当。
编辑: 1:嗯,差不多了。我想我还没有捕捉到任何关于生成器、一流的并发性和并行性、尾叫优化等方面的信息。
https://stackoverflow.com/questions/24008234
复制相似问题