gpt4 book ai didi

Swift 语言静态还是动态调度?

转载 作者:搜寻专家 更新时间:2023-10-30 22:06:07 25 4
gpt4 key购买 nike

阅读 Swift 语言指南 我无法找到 Swift 是静态调度(如基本 C++、Java、C#)还是动态调度(如 Objective-C)的明确信息。

语言特性(如类、扩展、泛型等)的文档似乎表明它是静态类型的,这可能是所谓的速度改进的来源。然而,Apple 在 WWDC 2014 主题演讲中表示,该语言使用与 Objective-C 相同的运行时,并且与 Cocoa/Cocoa Touch 非常兼容,建议动态调度。

最佳答案

将 C++、Java 和 C# 描述为静态调度并不是特别准确。这三种语言都可以而且经常使用动态调度。

Swift 同样可以做到这两点。它与 ObjC 的不同之处在于它总是动态调度。标记为@final 的方法可以静态分派(dispatch),结构和枚举方法也可以。我相信如果可以在编译时证明运行时类型(类似于 C++ 去虚拟化),则可以静态分派(dispatch)非 final方法,但我不确定那里的细节。

关于Swift 语言静态还是动态调度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24008234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com