## Swift 基礎
### Swift 常用數據類型
常用的數據類型有:整型(`Integer`)、浮點型(`Double`|`Float`)、布爾型(`Bool`)、字符串(`String`)、數組(`Array`)、集合(`Set`)、字典(`Dictionary`)、元組(`Tuple`)以及`nil`
### 變量與常量
#### 聲明
常量的值一旦設定就不能改變,而變量的值可以隨意更改。常量使用關鍵字 `let` 聲明,變量使用關鍵字 `var` 聲明,也可以在一行中聲明多個常量或多個變量,使用 `,` 隔開。例如:
```
var x = 1,y = 2 ,z = 0.0 // 聲明變量
let maxNum = 10 // 聲明常量
```
> **注意:**
> 在實際開發使用中,如果代碼中有不需要改變的值,建議使用 `let` 關鍵字將它聲明為常量,只將需要改變的值聲明為變量,使用 `var` 。
#### 類型標注
當聲明常量或者變量時可以加上類型標注(`type annotation`),說明常量或者變量中要存儲的值的類型。
聲明方法是:在常量或者變量名后面加上一個冒號和空格,然后加上類型名稱。如:
```
var name: String = "zhang"
let maxInt: UInt = 1844
```
> **注意:** 一般而言我們很少需要寫類型標注。如果我們在聲明常量或者變量的時候賦了一個初始值,Swift可以推斷出這個常量或者變量的類型。
#### 命名規范
我們可以使用任何喜歡的字符作為常量和變量名,包括Unicode字符,**但是在實際開發使用中不推薦這樣寫**。例如:
```
var 名字 = "curder"
print("我的名字是\(名字)") // 打印結果: 我的名字是curder
print("我的名字是" + 名字) // 打印結果: 我的名字是curder
var = "哭"
```

> Mac 系統中使用 `command(?) + control(?) + space(空格)`可以呼出表情。
常量與變量名不能包含數學符號,箭頭,保留的(或者非法的)Unicode 碼位,連線與制表符。也不能以數字開頭,但是可以在常量與變量名的其他地方包含數字。
一旦將常量或者變量聲明為確定的類型,就不能使用相同的名字再次進行聲明,或者改變其存儲的值的類型。同時,也不能將常量與變量進行互轉。
> 如果需要使用與 Swift 保留關鍵字相同的名稱作為常量或者變量名,你可以使用反引號(`)以關鍵字包圍的方式將其作為名字使用。
但是我們在開發中應當避免使用關鍵字作為常量或變量名,除非別無選擇。
#### 輸出
在 Swift 語言中,一些基礎數據類型都可以使用 `print` 打印。
```
let x = 1 , y = true , z = 3
print( x , y , z ) // 1 true 3
```
##### 自定義輸出
```
// 自定義分隔符(默認為空格)
print( x , y , z , separator:"-") // 結果為:`1-true-3`
// 自定義結束符(默認為 \n )
print( x , y , z , separator:"-",terminator:":)") // 結果為:1-true-3:)
```
##### 字符串插值
Swift 用字符串插值( `string interpolation` )的方式把常量名或者變量名當做占位符加入到長字符串中,Swift 會用當前常量或變量的值替換這些占位符。將常量或變量名放入圓括號中,并在開括號前使用反斜杠將其轉義:
```
print("\(x) * \(z) = \(x * z)") // 1 * 3 = 3
```
#### 注釋
##### 單行注釋
```
//
```
##### 多行注釋
```
/*
這是一個多行注釋
*/
```
> 與 C 語言多行注釋不同,Swift 的多行注釋可以嵌套在其它的多行注釋之中。你可以先生成一個多行注釋塊,然后在這個注釋塊之中再嵌套成第二個多行注釋。終止注釋時先插入第二個注釋塊的終止標記,然后再插入第一個注釋塊的終止標記:
```
/* 這是第一個多行注釋的開頭
/* 這是第二個被嵌套的多行注釋 */
這是第一個多行注釋的結尾 */
```
通過運用嵌套多行注釋,可以快速方便的注釋掉一大段代碼,即使這段代碼之中已經含有了多行注釋塊。
### 分號
與其他大部分編程語言不同,Swift 并不強制要求你在每條語句的結尾處使用分號(`;`),當然,也可以按照自己的編程習慣添加分號。有一種情況下必須要用分號,即打算在同一行內寫多條獨立的語句時,如下:
```
let cat = "?"; print(cat) // 輸出 "?"
```
- 學習筆記
- 基礎
- 基本類型之整型
- 基本類型之浮點型
- 基本類型之布爾類型以及簡單的 if 語句
- 基礎類型之元組
- 基本類型之其他
- 運算符
- 基礎運算符
- 比較運算符、邏輯運算符
- 三元運算符
- 范圍運算符for-in
- 邏輯控制
- 循環結構
- 選擇結構
- 字符串
- Character和Unicode
- String.index 和 range
- 可選型
- 容器類
- 數組初始化
- 數組基本操作
- 字典初始化
- 字典基本操作
- 集合初始化
- 集合基本操作
- 函數
- 閉包
- 枚舉
- 結構體
- 類
- 文檔注釋
- 屬性和方法
- 下標和運算符重載
- 拓展和泛型
- 協議
- 其他
- Swift 3.0 For 循環
- Swift 隨機數的生成
- IOS開發玩轉界面 UIKit
- UILable 文本顯示控件
- UIButton 簡單的交互控件
- UIImageView 圖片控件
- UISearchBar 搜索控件