Swift 基礎語法

  • 2019 年 10 月 3 日
  • 筆記

Swift 基礎語法

本文基於Swift 5.0+

目錄如下:

常量

  • let 關鍵字定義
  • 只能賦值1次
  • 它的值不要求在編譯時期確定,但使用之前必須賦值1次
let age1 = 10    let age2: Int  age2 = 20    func getAge() -> Int{      return 30  }    let age3 = getAge()  
  • 常量、變數在初始化之前,都不能使用,如下程式碼都是錯誤的
let age: Int  var height: Int    print(age)          // 未進行初始化,直接使用,在編譯期直接報錯  print(height)       // 未進行初始化,直接使用,在編譯期直接報錯    let age  age = 20            // 常量聲明時須直接賦值,由編譯期自動推斷類型,或者僅設置類型,稍後使用之前賦值一次。  

標識符

  • 標識符(如常量名,變數名,函數名)幾乎可以使用任何字元串
  • 標識符不能以數字開頭,不能包含空白字元、製表符、箭頭等特殊字元
func ??(){      print(666)  }    let ? = "ET"  var ? = "milk"  

常見的數據類型

Swift 中數據類型,主要分為兩大類。值類型(value type) 和 引用類型(reference type)

主要分類 類別 代表類型
值類型 value type 枚舉 enum  Optional
值類型 value type 結構體 struct Bool、Int、Float、Double、Character、
 String、Array、Dictionary、Set
引用類型 reference type
class 
 
  • 整數類型:Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64、
  • 在32bit平台上,Int 等價於 Int32,在64bit平台上,Int 等價於 Int64
  • 整數的最值:UInt8.max Int16.min
  • 一般情況下使用Int即可

  • 浮點類型:Float,32位環境,精度為6位;Double類型在64位環境下精度為15位

let letFloat: Float = 30.0  let letDouble = 30.0  

字面量

字面量就是一些直接寫出來看到的變數或者常量,如下展示了常用的一些字面量

// 布爾  let bool = true    // 字元串  let string = "Swift"    // 字元 (可存儲 ASCII 字元 和 Unicode 字元)。Swift 中字元類型也使用雙引號  let character: Character = "?"    // 整數  let intDecimal = 17         // 十進位整數  let intBinary = 0b10001     // 二進位  let intOctal = 0o21         // 八進位  let intHeaxDecimal = 0x11   // 十六進位    // 浮點數  let doubleDecimal = 125.0               // 十進位 等價於 1.25e2, 0.125 等價於 12.5e-2  let doubleHeaxDecimal1 = 0xFp2          // 十六進位 等價於 15*2^2 = 60(十進位)  let doubleHeaxDecimal2 = 0xFp-2         // 十六進位 等價於 15*2^-2 = 3.75(十進位)      // 數組, Swift 中數組可以存放 Any 類型數據,此處僅為存放整數  let array: Array = [1,2,3,54]    // 字典, Swift 中字典可以存放 Any 類型數據,此處僅為存放整數  let dictionary: Dictionary = ["name":"xiaoming","height":"1.7"]    // 十進位數字 12.1875 的如下表示方式  // 12.1875   121.875e-1     十進位  // 0xC.3p0                  十六進位    

note
整數和浮點數可以添加額外的零或者添加下劃線來增強可讀性
如:100_000 、 1_000_000_000.000_1 、000123.456

類型轉換

Swift 中的類型都是強類型,不同類型不能進行運算,必須轉換成同樣的類型才可以運算

  • 整數轉換
let int1: Int16 = 2_000                         // 2000  let int2: Int8 = 1                              // 1  let int3 = int1 + Int16(int2)                   // 2001  let int4: Int = Int(int3) + Int(int1)           // 4001  
  • 整數/浮點數轉換
let int = 3                         // 3  let double = 0.14159                // 0.14159  let pi = Double(int) + double       // 3.14159  let intPi = Int(pi)                 // 3  
  • 字面量之間可以直接進行運算,是因為數字字面量本身沒有明確的類型
let result = 3 + 0.14159    // let result = 3 + .14159 // Swift 中不允許寫 .14159 代表小數  

元組(Tuple)

元組就是一組元素,使用小括弧括起來,元素之間使用逗號分隔。元素之間會形成一個整體,且一一對應.示例程式碼如下

// 聲明一個元組對象,並列印其第一個元素  let Http404Error = (404,"page not found")  print("the error code is (Http404Error.0)")    // 聲明一個元組等價於元組 Http404Error 這樣會給聲明的元組內部元素自動賦值  let (statusCode , errorMsg) = Http404Error  print("the error code is (statusCode)")    // 聲明一個僅需要一個值的元組等價於 Http404Error,對內部元素自動對應 Http404Error 元素  let (theStatusCode , _) = Http404Error    // 聲明一個帶參數的元組。  let http200Status = (statusCode: 200,description: "OK")  print("the status code is (http200Status.statusCode)")  

小結

本文講述了 Swift 語言中基礎的一些語法,作為後續學習的基礎,後面會循序漸進學習並總結 Swift 中更深層次的知識。