@autoclosure
聚合運算符
替代
三目運算符
優化重復運算
自定義運算符不在需要打括號
無參函數,返回值也是函數,只有在調用時才會執行,使用@autoclosure后編譯器自動轉換常量參數包裝為函數;
swift3的autoclosure的順序做了調整在參數后
聚合運算符
替代
三目運算符
優化重復運算
自定義運算符不在需要打括號
無參函數,返回值也是函數,只有在調用時才會執行,使用@autoclosure后編譯器自動轉換常量參數包裝為函數;
swift3的autoclosure的順序做了調整在參數后
2017-01-22
FloatingPoint協議的2項內容:
常用數據類型遵循FloatingPoint方便類型轉換;
定義pi, infinity, nan方便數據處理;
指定數據為FloatingPoint范型無需進行轉型操作;
FloatingPoint定義了pi常量
Int,CGFloat, Float遵守FloatingPoint
定義Inifinity
T.infinity
定義NaN(Not Number)
myNan = Double.nan
myNan > 0 //false
divide(10.0, 0.0).isNaN
數據處理時應用NaN
非法數組轉換為nan方便計算
方便過濾非數值
常用數據類型遵循FloatingPoint方便類型轉換;
定義pi, infinity, nan方便數據處理;
指定數據為FloatingPoint范型無需進行轉型操作;
FloatingPoint定義了pi常量
Int,CGFloat, Float遵守FloatingPoint
定義Inifinity
T.infinity
定義NaN(Not Number)
myNan = Double.nan
myNan > 0 //false
divide(10.0, 0.0).isNaN
數據處理時應用NaN
非法數組轉換為nan方便計算
方便過濾非數值
2017-01-22
index數組的索引,也適用于字符串
現在廢棄了successor方法
arr.index(after: i)獲得后繼,不脫離數組的索引,采用數組的方法獲得索引;
let j: String.Index = str.startIndex
現在廢棄了successor方法
arr.index(after: i)獲得后繼,不脫離數組的索引,采用數組的方法獲得索引;
let j: String.Index = str.startIndex
2017-01-22
#keyPath用#替代字符串減少錯誤拼寫情況
forKeyPath
label.value(forKeyPath: superviewColor)
forKeyPath
label.value(forKeyPath: superviewColor)
2017-01-22
where的用處:
可以用于switch語句,沒有太大變化;
可以用于if語句,用于模式判斷,表達限制模式的要求,現在只需要用逗號替換;
guard語句,對可選型進行解包后,可以用where語句對解包后的語句進行約束;現在也采用逗號替換,并把解包與檢測參數合法性的方法分別執行
guard
let a = a, let b = b, let c = c
a > 0, b <= 0, c%2 == 0 else{
return nil
}
return 0
}
where語句的使用位置發生了改變,類似解包與合法性驗證的分開表達
可以用于switch語句,沒有太大變化;
可以用于if語句,用于模式判斷,表達限制模式的要求,現在只需要用逗號替換;
guard語句,對可選型進行解包后,可以用where語句對解包后的語句進行約束;現在也采用逗號替換,并把解包與檢測參數合法性的方法分別執行
guard
let a = a, let b = b, let c = c
a > 0, b <= 0, c%2 == 0 else{
return nil
}
return 0
}
where語句的使用位置發生了改變,類似解包與合法性驗證的分開表達
2017-01-22
枚舉型
大量字符串標識符 調整為 枚舉型變量,首字母大寫修改為小寫;
Optional<String>.none就是nil的本質,現在none變成了小寫
大量字符串標識符 調整為 枚舉型變量,首字母大寫修改為小寫;
Optional<String>.none就是nil的本質,現在none變成了小寫
2017-01-22
動詞函數名稱:直接作用原對象
動名詞函數名稱:產生變化的返回值,不改變原值
scores.sorted得到一個排序的數組,scores的值沒用變化
reversed不改變原數組
reverse會改變原數組
倒序循環語句
for i in (1...5).reversed(){
}
動名詞函數名稱:產生變化的返回值,不改變原值
scores.sorted得到一個排序的數組,scores的值沒用變化
reversed不改變原數組
reverse會改變原數組
倒序循環語句
for i in (1...5).reversed(){
}
2017-01-22