Swift静态和动态分发机制

Swift静态和动态分发机制,第1张

概述Free functions, and methods called on structs, are statically dispatched. This means the function that’ll be called is known at compile time. This also means the compiler might be able to inline the f

Free functions,and methods called on structs,are statically dispatched. This means the function that’ll be called is kNown at compile time. This also means the compiler might be able to inline the function,i.e. not call the function at all,but instead replace it with the code the function would execute. It can also discard or simplify code that it can prove at compile time won’t actually run.

全局函数和或者在结构上调用的方法使用的是静态分发机制。这意味着函数调用在编译时已知。这同样表示编译器内联函数。举个例子,不是调用函数而是将其替换为函数本身的代码。他同样可以丢弃和简化编译时被证明实际不运行的代码。

Methods on classes or protocols might be dynamically dispatched. This means the compiler doesn’t necessarily kNow at compile time which function will run. This dynamic behavior is done either by using vtables (similar to how Java or C++ dynamic dispatch works),or in the case of @objc classes and protocols,by using selectors and objc_msgSend.

在类或协议上的方法是动态分发的。这意味着编译器并不一定知道在编译时刻哪个函数将会运行。这种动态行为用虚表(类似于Java或C++动态分发那样)或者在使用@objc修饰类或协议的情况下,使用选择器和objc_msgSend来完成。

总结

以上是内存溢出为你收集整理的Swift静态和动态分发机制全部内容,希望文章能够帮你解决Swift静态和动态分发机制所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062798.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存