swift4 常用属性

  1. @inline(内联)
//声明这个函数绝不(never)编译成内联(inline)的形式
@inline(never)
func foo()  {
    print("爱情也会带来折磨")
}
//声明这个函数总是(always)编译成内联(inline)的形式
@inline(__always)
func foo()  {
    print("爱情也会带来折磨")
}
  1. @discardableResult(结果可丢弃)
//当我们调用foo()方法的时候,如果该方法有返回值,但是返回值我们又不想使用的时候,可以在方法前加上@discardableResult,这样就不会报警告了
@discardableResult
func foo(a:Int) -> String {
    return String(a)
}
  1. @available(可用的)
//introduced:引入;deprecated:弃用; unavailable不可用的
//这里是声明foo()函数只能在iOS上使用不能在OSX等其他设备上使用,而且该方法只能在Target大于8.0且小于10.3能使用。
//unavailable声明该方法不可用,错误信息就是message的提示语。

@available(iOS, introduced: 8.0, deprecated: 10.3, unavailable, message: "这个方法不能用啦")
func foo() { }

4.@noreturn

//@noreturn
func foo() -> Never {
//        return ""
    fatalError("Something very, very bad happened")
}

如果某个函数一定不需要返回参数,可在函数末尾加 -> Never,而不再使用@noreturn

fatalError():致命错误
在调试时我们可以使用断言来排除类似这样的问题,但是断言只会在 Debug 环境中有效,而在 Release 编译中所有的断言都将被禁用。在遇到确实因为输入的错误无法使程序继续运行的时候,我们一般考虑以产生致命错误 (fatalError) 的方式来终止程序。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,088评论 19 139
  • 1、随机数 不需要随机数种子 arc4random()%N + begin:产生begin~begin+N的随机数...
    我是小胡胡123阅读 9,767评论 0 2
  • 1 文件结构 每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件...
    Mr希灵阅读 7,925评论 0 13
  • 3.4 说说相等和内部表示 在Lisp中主要有5种相等断言,因为不是所有的对象被创建的时候都是相等意义上的相等。数...
    geoeee阅读 5,879评论 0 6
  • 1、主要不是均态,大多数人都是陪练,2、知识市场和知识服务市场也不一样,服务市场更大。
    咸叔说阅读 1,207评论 0 1

友情链接更多精彩内容