Swift學習 Swift程式設計之旅(二)

2022-03-21 08:12:24 字數 2250 閱讀 8274

在本節將介紹一些最基礎的知識

swift提供自己版本的型別,下面說明幾種簡單的型別

int

整型double和float 浮點型

string     字串型

bool      布林型

它也提供了3種主要的強大的集合型別,set集合,array陣列,dictionary字典

和c一樣,swift通過變數類儲存並通過變數名來關聯值。

swift高階型別【oc中沒有】

1.swift還提供了oc沒有的高階型別,比如元組(tuple),元組可以讓你建立或者傳遞一組資料,比如作為函式的返回值時,你可以用乙個元組可以返回多個值。  

2.可選型別,用於處理值缺失的情況。在swift中不僅類和物件可以為nil,任何型別都可以是nil。

swift是一門安全的語言,這意味著這門語言在你編碼時幫助你清理值的型別,你期望傳入乙個string型別的值,型別安全會阻止你傳入乙個int值,當傳入時會發生編譯時錯誤。

下面詳細介紹一下swift的幾種簡單資料型別

一、整型integer

swift提供有符號和無符號整數。這些整數遵循命名約定類似於c,在乙個8位無符號整數是uint8型別,和乙個32位有符號整數型別int32。你可以獲取到不同整型資料的最大值和最小值。

uint8.min 8位整數的最小值  uint8.max最大值。

int

在大多數情況下,在你的**中你不需要選擇乙個特定大小的整數。swift提供乙個額外的整數型別,int,長度範圍與當前平台相等

在32位平台,int與int32的大小相同。

在64位平台上,int與 int64的大小相同。

除非你需要工作與乙個特定大小的整數,總是使用int整數值在您的**。這有助於**的一致性和互操作性。即使在32位平台,int可以儲存任何價值之間- 2147483648到2147483647,足夠大的整數範圍。

uint

還提供了乙個無符號的整數型別,uint,長度範圍與當前平台相等

在32位平台、uint是uint32的大小相同。

在64位平台上,uint是uint64的大小相同。

注意盡量不要使用uint,除非你真的需要儲存乙個和當前平台原生字長相同的無符號整數。除了這種情況,最好使用int,即使你要儲存的值已知是非負的。統一使用int可以提高**的可復用性,避免不同型別數值之間的轉換,並且匹配數字的型別推測。

二、浮點數值

swift 提供了兩種有符號浮點數型別 

-double表示64位浮點數。當你需要儲存很大或者很高精度的浮點數時請使用此型別。

-float表示32位浮點數。精度要求不高的話可以使用此型別。

型別安全和型別推測

swift 是型別安全的,所以它會在編譯你的**時進行型別檢查(type checks),並把不匹配的型別標記為錯誤。這可以讓你在開發的時候盡早發現並修復錯誤。型別檢查可以幫你避免錯誤。然而,這並不是說你每次宣告常量和變數的時候都需要顯式指定型別。如果你沒有顯式指定型別,swift 會使用型別推測(type inference)來選擇合適的型別。有了型別推測,編譯器可以在編譯**的時候自動推測出表示式的型別。原理很簡單,只要檢查你賦的值即可。因為有型別推測,和 c 或者 objective-c 比起來 swift 很少需要宣告型別。常量和變數雖然需要明確型別,但是大部分工作並不需要你自己來完成。當推測浮點數的型別時,swift 總是會選擇double而不是float。

數值型字面量

十進位制數,沒有字首

二進位制數,用0b字首

八進位制數,以0o字首

十六進製制數,乙個0x字首

數值型別轉換

整數和浮點數的轉換必須顯式指定型別

型別別名

型別別名(type aliases)就是給現有型別定義另乙個名字。你可以使用typealias關鍵字來定義型別別名

typealias audiosample = uint16

booleans布林值

swift 有乙個基本的布林(boolean)型別,叫做bool。布林值指邏輯上的(logical),因為它們只能是真或者假。swift 有兩個布林常量,true和false:

Swift學習 Swift程式設計之旅(一)

學習一門新語言最經典的例子就是輸出 hello world!print hello world swift就是這樣來輸出的。如果你使用過其他語言,那麼看上去是非常的熟悉吧。但比一些c要簡單的多吧 1 不需要匯入一些單獨的庫,比如輸入 輸出或字串處理功能的類庫,2 不需要在全域性範圍內編寫的 用於作為...

Swift 面向協議程式設計之協議擴充套件

協議的命名遵循swift的標準庫,即協議名以 type able ible 結尾。例如 sequencetype,generatortype,customstringcoveeertible,type定義行為,able定義元素怎樣做事。swift 能擴充套件協議 協議可以新增方法和屬性 協議擴充套件...

窺探Swift程式設計之強大的Switch

之前初識swift中的switch語句時,真的是讓人眼前一亮,swift中switch語句有好多特有而且特好用的功能。說到switch,只要是寫過程式的小夥伴對switch並不陌生。其在程式中的出鏡率還是比較高檔。switch屬於程式的分支語句,switch的功能便於處理多個分支的較為複雜點的邏輯分...