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