if
if else 判斷時,可超合 && 和 ||
if的()可以不需使用!
比較字串是否相等時,就是用 ==,會比較字串是否相同
若是比較字定義的物件是否相等時,要用 ===,會比較是否為同一物件
switch case
可以不用()
可以比對任何型別
每個case裡的command執行完就會自動break,所以不用每行都加break
case裡不可以是空的,若一定是空的,就給他一個break
加上fallthrough可以繼續執行下一個case
case可以有多個符合條件,用逗號分開(case 1,100: )
for
for i in 1..3 { // 1,2
}
2015/09/12 幹,上面兩個點的已經不能用了
for i in 1..<3 { // 1,2
}
for i in 1…3 { // 1,2,3
}
// 印出每個字元
var name = “ABC"
for char in name {
}
optional
宣告optional時,問號需跟變數型別沒有間隔 var age: Int? , 不能是 var age: Int ?
加上?後,會被自動初始化為nil
//判斷optional是否有值,有值再access
if let ageNumber = age {
}
if var ageNumber = age{
}
加上?表示為optional型別,加上!表示自動解包裝(Implicitly Unwrapped Optionals),直接從optional取值
var aa = age ?? 30 // ?? 為optional加上預設值,當nil時會用預設值。注︰??左右要有空白!!
function
func eat(name:String, foodPrice price:Int) // 外部參數名稱(可省略) 內部參數名稱: 參數型別
func eat(name:String, price price:Int) // 外部參數名稱與內部參數名稱相同也可以但會有警告
func eat(name:String, #price:int) // 加上#表示會自動產生同名的外部參數名稱
func eat(name:String, price:Int = 50) // 設定預設值,當沒有傳入pirice參數時,price將被自動設為50
function return
可以回傳包含多筆資料的tuple型別
// 無回傳值時
func test1(){
}
func test2()->void{
}
func test3()->(){
}
不限數量參數
func movie(title:String, actors:String…){
for actor in actors {
….
}
}
不限數量參數必須是最後一個參數
最多只能有一個參數是不限數量參數
留言
張貼留言