Swift學習筆記總結(jié)(一)

類型別名

類型別名(type aliases)就是給現(xiàn)有類型定義另一個名字。你可以使用 typealias 關(guān)鍵字來定義類型別名。

typealias AudioSample = UInt16

定義了之后,可以使用這個別名來代替之前的

var maxAmplitudeFound = AudioSample.min // maxAmplitudeFound 現(xiàn)在是 0(本例中, AudioSample 被定義為 UInt16 的一個別名。因為它是別名, AudioSample.min 實際上是 UInt16.mi ,所以會給 賦一個初值 。)

BOOL(布爾值)

Swift 有一個基本的布爾(Boolean)類型,叫做 Bool 。布爾值指邏輯上的(logical,因為它們只能是真或者 假。不再有YES或者NO這兩個,會報錯,而且也敲不出來了。Swift 有兩個布爾常量, true 和 false :

let orangesAreOrange = true let turnipsAreDelicious = false

orangesAreOrange 和 turnipsAreDelicious 的類型會被推斷為 Bool ,因為它們的初值是布爾字面量。就像之 前提到的 Int 和 Double 一樣,如果你創(chuàng)建變量的時候給它們賦值 true 或者 false ,那你不需要將常量或者變量 聲明為 Bool 類型。初始化常量或者變量的時候如果所賦的值類型已知,就可以觸發(fā)類型推斷,這讓 Swift 代碼 更加簡潔并且可讀性更高。

當你編寫條件語句比如 if 語句的時候,布爾值非常有用:

if turnipsAreDelicious { print("Mmm, tasty turnips!")

} else {print("Eww, turnips are horrible.")

}// 輸出 "Eww, turnips are horrible."

條件語句,例如 if ,請參考控制流。

如果你在需要使用 Bool 類型的地方使用了非布爾值,Swift 的類型安全機制會報錯。下面的例子會報告一個編譯 時錯誤:

let i = 1 if i {

// 這個例子不會通過編譯,會報錯 }

然而,下面的例子是合法的:

let i = 1 if i == 1 {

// 這個例子會編譯成功

}

i == 1的比較結(jié)果是BOOL 類型,所以第二個例子可以通過類型檢查。類似 這樣的比較,請參考基本操作 符。

元祖

元組(tuples)把多個值組合成一個復合值。元組內(nèi)的值可以是任意類型,并不要求是相同類型。

let http404Error = (404, "Not Found")// http404Error 的類型是 (Int, String),值是 (404, "Not Found")

(404, "Not Found") 元組把一個 Int 值和一個 String 值組合起來表示 HTTP 狀態(tài)碼的兩個部分:一個數(shù)字和一 個人類可讀的描述。這個元組可以被描述為“一個類型為 (Int, String) 的元組”。

你可以將一個元組的內(nèi)容分解(decompose)成單獨的常量和變量,然后你就可以正常使用它們了:

let (statusCode, statusMessage) = http404Error

print("The status code is \(statusCode)")// 輸出 "The status code is 404"

print("The status message is \(statusMessage)") // 輸出 "The status message is Not Found"

如果你只需要一部分元組值,分解的時候可以把要忽略的部分用下劃線( _ )標記:

(Int, I

let (justTheStatusCode, _) = http404Error print("The status code is \(justTheStatusCode)") // 輸出 "The status code is 404”

而且你還可以像訪問數(shù)組那樣取得第零個位置以及其他位置的值是神馬(下標是從0開始的哦)

print("The status code is \(http404Error.0)")// 輸出 "The status code is 404"print("The status message is \(http404Error.1)") // 輸出 "The status message is Not Found"

當然了你還可以在定義元祖的時候給單個元素進行命名:

let http200Status = (statusCode: 200, description: "OK")

給元組中的元素命名后,你可以通過名字來獲取這些元素的值:

print("The status code is \(http200Status.statusCode)")

// 輸出 "The status code is 200"

print("The status message is \(http200Status.description)") // 輸出 "The status message is OK"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于 Swift 重要這個文檔所包含的準備信息, 是關(guān)于開發(fā)的 API 和技術(shù)的。這個信息可能會改變, 根據(jù)這個文...
    無灃閱讀 4,344評論 1 27
  • 基礎(chǔ)部分(The Basics) 當推斷浮點數(shù)的類型時,Swift 總是會選擇Double而不是Float。 結(jié)合...
    gamper閱讀 1,317評論 0 7
  • About me: 在學習Swift之前完完全全的零基礎(chǔ)編程,不知道變量與常量區(qū)別的那種零基礎(chǔ)。 教程主要看 ht...
    lightandall閱讀 341評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,785評論 18 139
  • 十月寒秋清風夜, 蒼穹枯坐上弦月。 月缺人去情難絕, 徒對清影傷離別。 幽幽往事誰訴說, 落落孤燈明里滅。 醉臥花...
    放羊的小孩兒閱讀 219評論 1 2