Swift是一門類型安全語言,類型安全語言需要代碼里值的類型非常明確。如果你的代碼中有部分值需要String類型,你就不能錯誤地傳遞Int。
鑒于Swift的類型安全,編譯代碼時,Swift會執行類型檢查并將任何類型不匹配的地方標記為錯誤,使你在開發當中盡可能早的捕獲并修正錯誤。
類型檢查有助于你在操作不同值的類型時避免犯錯。但這并不意味著你必須在聲明每一個常量或變量時去檢查類型,如果你不檢查所需值的類型,Swift會執行類型推斷來計算出相應地類型。
類型推斷讓編譯器在編譯代碼時,根據你提供的值,自動推測出特定表達式的類型。
基于類型推斷,Swift對類型聲明的需要遠比C或Objective-C語言要少得多。常量與變量仍然有明確的類型,但明確指定類型的工作已經由編譯器代你完成。
當你聲明一個常量或變量并賦予一個初始值時,類型判斷尤其有用。通常通過在聲明時賦字面值(literal value,或稱“字面量”literal)實現(類型判斷)。(字面值指直接出現在源代碼中的值,如下例中的 42 與 3.14159)
比如說,你給一個新的常量賦一個字面值42但未指定其類型時,Swift會推斷你想要一個Int型的常量,因為你初始化時提供的數字像一個整數:
1 let meaningOfLife = 422 // meaningOfLife 被推斷為Int型
同樣的,如果不為浮點數字面量指定類型時,Swift會推斷你想要創建一個Double型:
1 let pi = 3.141592 // pi 被推斷為Double型
Swift在推斷浮點數數字時通常會選用Double(而不是Float)。
如果你在表達式中結合了整數和浮點數字面量,Swift會根據上下文中推斷返回Double型:
1 let anotherPi = 3 + 0.141592 // anotherPi 會被推斷為Double型
上例中,字面值3自身不屬于某個類型,也未明確指定類型,根據當前附加部分的浮點數字面量推斷并適當地輸出Double型。
謝謝,Swifter-QQ群:362232993,同好者進~
Fork:https://github.com/Joejo/Swift-lesson-for-chinese
新聞熱點
疑難解答