Swift言语那些不为人知的个性

  • 电脑网络维修
  • 2024-11-14

Swift言语有各种各样不足(或没有)文档记载的个性(attribute)放在那里等着被经常使用。让咱们一同看看其中的一些个性:

这个个性为编译器提供了内联揭示。有效的取值是__always和never。除非我以为必定要用这两个值,否则就不会经常使用它(特意是__always)。到目前为止与其关系的规定还不是很明白,在有限的测试下,它可以反常地上班,但还要视详细状况而定。

进 一步的解释:虽然底层虚构机(Low Level Virtual Machine,LLVM)有强迫内联的概念,但咱们目前还不知道这个@inline个性能否与其间接映射,也不知道能否存在大小方面的限度,但这将会造成编译器疏忽这一 点而跳过内联。通常上说应该是这样的,但我不保障必定是。

留意(当提升设置封锁时)在调试形式下的构建将疏忽@inline。

@transparent

我最后并未将这个个性列进去。该个性会造成编译器在管道(pipeline)中更早地将函数内联。它用于 “像+(Int, Int)这样十分原始的函数”,而“不应该用于独立函数” 。

甚至在没有提升设置的调试形式下@transparent个性函数就会被内联,所以在调用“1+1”这样的函数的时刻并不会特意慢。另外这个个性与@inline(__always)十分相似。

@availability

这个个性可以用来标识某些函数只在某些平台或版本上可用。***个参数是平台,可以用星号(*)代表一切可用,还可以是iOS或OS X。由于假设要求针对不同的平台,就要指定多个@availability属性。

如 果要求示意该函数在某个给定的平台齐全无法用时,可以将第二个参数置为unavailable。此外,还可以用 introduced,deprecated和obsoleted来指定一个或是多个版本的组合:obsoleted象征着该项曾经删 除,deprecated仅仅示意假设经常使用就会给予正告。***你可以设置message的值,假设该项被经常使用了就由编译器输入。上方是一些例子:

正如该个性所形容的那样:编译器可以假设这个函数是一个永远循环运转的终点,例如while true { },或许假设是函数abort或许exit进程的状况。

评论者Marco Masser指出,假设调用另一个被标记为@noreturn的函数,那么编译器会疏忽掉函数中缺失的前往值(missing return values),由于编译器了解程序的控制流。

该属性给出了函数、方法或属性成功的符号称号。假设你曾经知道对应的函数参数及其类型,那么就可以间接调用Swift的外部规范库函数,甚至不用头文件,也可以繁难地调用C言语编写的函数:

@unsafe_no_objc_tagged_pointer

上方这个依然是个谜,但我猜想它是在通知Swift与Objective-C咨询的时刻不要经常使用tagged pointer。

@semantics

这又是另一个谜。参数看起来像是array.mutate_unknown或array.init这样的字符串数组。想必这是要通知编译器(或静态剖析器)函数是如何上班的。

论断

谁还要求有趣老套的@objc和@autoclosure呢?还是算了吧!

文章起源: Russ Bishop

作者简介: Russ Bishop 全能型程序员,经常使用C#、Objective-C和Swift言语编程,开发了奇怪的运行Storm Sim Free,博客:。

译者简介:白云鹏,移动运行开发者,团体博客:。

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/4688.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号