swift4 常用屬性

  1. @inline(內(nèi)聯(lián))
//聲明這個函數(shù)絕不(never)編譯成內(nèi)聯(lián)(inline)的形式
@inline(never)
func foo()  {
    print("愛情也會帶來折磨")
}
//聲明這個函數(shù)總是(always)編譯成內(nèi)聯(lián)(inline)的形式
@inline(__always)
func foo()  {
    print("愛情也會帶來折磨")
}
  1. @discardableResult(結(jié)果可丟棄)
//當我們調(diào)用foo()方法的時候,如果該方法有返回值,但是返回值我們又不想使用的時候,可以在方法前加上@discardableResult,這樣就不會報警告了
@discardableResult
func foo(a:Int) -> String {
    return String(a)
}
  1. @available(可用的)
//introduced:引入;deprecated:棄用; unavailable不可用的
//這里是聲明foo()函數(shù)只能在iOS上使用不能在OSX等其他設(shè)備上使用,而且該方法只能在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")
}

如果某個函數(shù)一定不需要返回參數(shù),可在函數(shù)末尾加 -> Never,而不再使用@noreturn。

fatalError():致命錯誤
在調(diào)試時我們可以使用斷言來排除類似這樣的問題,但是斷言只會在 Debug 環(huán)境中有效,而在 Release 編譯中所有的斷言都將被禁用。在遇到確實因為輸入的錯誤無法使程序繼續(xù)運行的時候,我們一般考慮以產(chǎn)生致命錯誤 (fatalError) 的方式來終止程序。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,590評論 19 139
  • 1、隨機數(shù) 不需要隨機數(shù)種子 arc4random()%N + begin:產(chǎn)生begin~begin+N的隨機數(shù)...
    我是小胡胡123閱讀 4,408評論 0 2
  • 1 文件結(jié)構(gòu) 每個C++/C程序通常分為兩個文件。一個文件用于保存程序的聲明(declaration),稱為頭文件...
    Mr希靈閱讀 2,978評論 0 13
  • 3.4 說說相等和內(nèi)部表示 在Lisp中主要有5種相等斷言,因為不是所有的對象被創(chuàng)建的時候都是相等意義上的相等。數(shù)...
    geoeee閱讀 1,970評論 0 6
  • 1、主要不是均態(tài),大多數(shù)人都是陪練,2、知識市場和知識服務(wù)市場也不一樣,服務(wù)市場更大。
    咸叔說閱讀 151評論 0 1

友情鏈接更多精彩內(nèi)容