天天看點

新手學IOS開發-swift語言基礎資料類型

作者:coderjack
新手學IOS開發-swift語言基礎資料類型

swift

在前面的文章中,我們學習了如何搭建開發環境以及如何通過xcode建立IOS的界面布局,見:

  1. 新手學IOS開發-開發環境搭建
  2. 新手學IOS開發-APP界面布局基礎開發

但在前面的這兩篇文章中,我們隻是簡單的搭建了IOS的使用者界面,但是有了使用者界面還不夠,我們需要響應使用者的輸入,例如通過使用者輸入的内容查詢伺服器上的資料、執行數學邏輯計算等,這些操作都需要我們通過編碼的方式實作,如何編碼呢?這就需要用到IOS開發所使用的swift程式設計語言。

筆者需要從使用者輸入的查詢條件從伺服器上查詢資料清單以及資料詳情,這樣的需求也使得筆者需要學習swift語言。

什麼是Swift

引用蘋果官方的介紹:

Swift 是一種強大直覺的程式設計語言,适用于 iOS、iPadOS、macOS、Apple tvOS 和 watchOS。編寫 Swift 代碼的過程充滿了樂趣和互動。Swift 文法簡潔,但表現力強,更包含了開發者喜愛的現代功能。Swift 代碼從設計上保證安全,并能開發出運作快如閃電的軟體。

swift有哪些特點呢?筆者從蘋果官方摘錄以下幾點:

  1. 現代化:Swift 是程式設計語言的最新研究成果,并融合了建構 Apple 平台的數十年經驗。命名參數以簡潔的文法表示,讓你能更輕松地閱讀和維護以 Swift 編寫的 API。你甚至無需鍵入分号。推斷類型讓代碼更為簡潔且不易出錯;而子產品則消除了标頭,改為提供名稱空間。為了給國際語言和表情符号提供最佳支援,字元串會保持 Unicode 正确性,并使用基于 UTF-8 的編碼來優化各種用例中的性能。記憶體采用嚴謹的确定性引用計數來自動管理,最大程度地降低了記憶體使用量,且不會産生垃圾回收開銷。你甚至可以使用簡單的内置關鍵詞編寫并發代碼,這些關鍵詞定義異步行為,使代碼更清晰易讀,更不易出錯
  2. 從設計上確定安全:Swift 可避免全部類型的不安全代碼。變量在使用前會始終先進行初始化,數組和整數會進行溢出檢查,記憶體将實作自動管理,強制式獨占通路記憶體功能亦可防範很多程式設計錯誤。文法經過調整,讓你可輕松定義目标意圖。例如,隻需三個字元的關鍵詞就可定義變量 (var) 或常量 (let)。此外,Swift 充分利用值類型,特别是針對 Array 和 Dictionary 等常用類型。這讓你在拷貝這種類型的内容時,能放心它不會在其他位置被修改。
  3. 快速而強大:最初構思時,我們就希望 Swift 實作快速運作的效果。利用出色的高性能 LLVM 編譯器技術,Swift 代碼會轉換為經過優化的、可充分利用現代硬體的機器代碼。此外,文法和标準資料庫也進行了調整,使最淺顯的編碼方式也能有最佳表現,無論它是在你腕上的手表上運作,還是跨一組伺服器運作。
  4. Objective-C 互操作性:你可以立即使用 Swift 建立全新的 App,或開始使用 Swift 代碼在你的 App 中實施新的特性和功能。Swift 代碼可以與你現有的 Objective-C 檔案在同一個項目中共存,并可完全通路 Objective-C API,讓你能輕松地采用這些檔案。

nil

swift 中的關鍵詞nil表示資料不存在

資料類型

資料類型指的是可以在程式中存儲和操作的值的類型,每種程式設計語言都有資料類型,好比我們國小時候學過的整數和小數,就是兩種資料類型。swift也不例外,有自己的類型系統。下面我們來介紹一下swift中的資料類型。

Int

一般來說,你不需要專門指定整數的長度。Swift 提供了一個特殊的整數類型Int,長度與目前平台的原生字長相同:

  • 在32位平台上,Int和Int32長度相同。
  • 在64位平台上,Int和Int64長度相同。

除非你需要特定長度的整數,一般來說使用Int就夠了。這可以提高代碼一緻性和可複用性。即使是在32位平台上,Int可以存儲的整數範圍也可以達到-2,147,483,648~2,147,483,647

Int8/Int16/Int32/Int64

分别表示不同長度的Int

其中:

  1. Int8占1位元組,數值範圍為-127 到 127
  2. Int16占2位元組,數值範圍為-32768 到 32767
  3. Int32占4位元組,數值範圍為-2147483648 到 2147483647
  4. Int32占8位元組,數值範圍為-9223372036854775808 到 9223372036854775807

當需要使用不同範圍的Int值時,可使用不同的Int類型。

UInt

Swift 也提供了一個特殊的無符号類型UInt,長度與目前平台的原生字長相同:

  • 在32位平台上,UInt和UInt32長度相同。
  • 在64位平台上,UInt和UInt64長度相同。

UInt也有對應的UInt8/UInt16/UInt32/UInt64

浮點數Double和Float資料類型

浮點數是有小數部分的數字,比如3.14159,0.1和-273.15。

浮點類型比整數類型表示的範圍更大,可以存儲比Int類型更大或者更小的數字。Swift 提供了兩種有符号浮點數類型:

  • Double表示64位浮點數。當你需要存儲很大或者很高精度的浮點數時請使用此類型。
  • Float表示32位浮點數。精度要求不高的話可以使用此類型。

Bool(布爾類型)

Swift 有一個基本的布爾(Boolean)類型,叫做Bool。布爾值指邏輯上的值,因為它們隻能是真或者假。Swift 有兩個布爾常量,true和false。

Character(字元類型)

字元指的是單個字母, 例如'c', 'a'

String(字元串)

字元串是字元的序列集合,例如 "swift"

Optional(可選類型)

表示包裝值存在或缺少值的類型,主要用來處理值不存在的情況,它表示某個變量的值可能不存在。

例如:let shortForm: Int? 表示shortForm是一個Int的可選類型,即shortForm可能是nil

struct(結構體)

Swift 結構體是建構代碼所用的一種通用且靈活的構造體,結構體由一組稱為成員(或稱為域,或稱為元素)的不同資料組成,其中每個成員可以具有不同的類型。 結構體通常用來表示類型不同但是又相關的若幹資料。 結構體類型不是由系統定義好的,而是需要程式設計者自己定義的。

說簡單點結構體就是把多個變量放一起當一個資料類型。

我們可以為結構體定義屬性(常量、變量)和添加方法,進而擴充結構體的功能。例如:

struct User {
   var id: Int
   var name: String
}           

結語

資料類型是程式設計語言中必不可少的元素,我們日常開發離不開基礎資料類型,在後面的IOS開發學習過程 中,所有内容都離不開資料類型,是以資料類型是必須掌握的基礎。掌握了資料類型後,下期我們學習swift中的基礎文法。

往期文章回顧

  1. 新手學IOS開發-開發環境搭建
  2. 新手學IOS開發-APP界面布局基礎開發

繼續閱讀