Swift 語法

1. 常量和變量

使用 let 關鍵字聲明常量(Constants)

let maxnNum = 32

使用 var 關鍵字聲明變量(Variables)

var index = 1

  1. swift 是一種類型安全(type safety)的語言,如果變量被初始化爲整數1,則這個變量的類型就是 int

  2. 語句的結尾並不需要添加分號

  3. 數據類型的關鍵字的首字母是大寫的

1. 基本數據類型

數據類型 注意 聲明示例
Int 另有 Int8, Int16 等
Double, Float Double 爲64位數據,精確到小數點後15位;Float 爲32位數據,精確到小數點後6位 var red, green, bule : Double
String 用雙引號括起來,不需要@符號 var websitename : String
Bool 使用 true 或 false 表示,而不再是 oc 中的 yes 或 no

1. 聲明不同進制的整型

let decimalInt:Int = 17

let binaryInt:Int = 0b10001

let octalInt:Int = 0o21

let hexadecimalInt = 0x11

2. 聲明科學計數法形式的浮點數

let a = 0.012

let b = 1.2e-2

3. 聲明大數字

用下劃線隔開

let bignum_a = 100000000

let bignum_b = 100_000_000

let bignum_c = 1_0000_0000

4. 隱式類型轉換

let num_a:Float = 1

let num_b:Int = 1.2

5. 強制類型轉換

let a:Int = 3

let b:Double = 0.1415926

let pi:Double = Double(a) + b

6. 使用中文聲明變量

支持任意 Unicode 類型的字符

let 姓名 = “我的名字”

字符串拼接:姓名 + “你好”

7. 定義布爾類型變量

  1. 花括號不可省略

  2. 整型值不可以作爲布爾值

let trueVal = true
let falseVal = false

if trueVal
{
    println("true value")
}
else
{
    println("false value")
}

2. 高級數據類型

1. 元組 Tuples

  1. 新引進的類型

  2. 將多個不同的值集合成一個數據,用逗號分隔,元組中各項可以是不同類型

  3. 顯式聲明使用以下形式: (datatype, datatype, datatype)

  4. 用在函數返回值時可以返回一組值而不是單個值

let connectresult = ( 404, “Not Found" )

1. 使用變量名訪問元組

let registrationResult = (true, "username", "sex")
let ( isRegisterSuccess, nickname, gender ) = registrationResult
isRegisterSuccess
nickname
gender

2. 使用點運算符訪問元組

registrationResult.0
registrationResult.1
registrationResult.2

3. 在聲明時爲元組中的分量指定名稱

let registrationResult = (isRegisterSuccess: ture, nickname: "username", gender: "sex")
registrationResult.isRegisterSuccess
registrationResult.nickname
registrationResult.gender

4. 不完整的賦值,使用下劃線忽略部分數值

let loginResult : ( Bool, String ) = (true, "username")
let ( isRegisterSuccess, _) = loginResult
if isRegisterSuccess
{
    println("login success ! ");
}

2. 可選值 Optionals

  1. 或者是一個值,或者沒有值

  2. 沒有值時爲nil(oc 中 nil 表示空指針,swift 中則更爲廣泛)

  3. 注意,沒有被初始化的值不能被直接引用,而非隨機值

1. 顯式聲明一個可選的 Int 值

var anOptionalVarible:Int?

此時,可選值的值爲 nil

anOptionalVarible = 12

此時,可選值被初始化爲12

2. 示例

let userInput = "18"
var age = userInput.toInt()

if age != nil
{
    println("your age is \(age!)")
}
else
{
    println("Invalidate userInput")
}
  1. toInt 方法返回一個可選值,所以 age 是一個可選值

  2. 如果用戶輸入的字符可以轉換爲數字,則用插值的方式打印出這個值,否則報錯

  3. 把一個一定有值的可選型轉換成相應類型的值,則在 age 後面加一個 “!” 號

  4. 強制類型轉換不可以對可選型,而使用 “!” 號就可以了,因爲開發者確定其有值,引用是安全的。

  5. 在可選型後面加 “!” 號叫做可選型的解包,在這裏將一個 Int 型的可選型解包爲整型

3. Optional Binding

將判斷和解包結合在一起

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章