最贊回答 / Mr_Scorpio
這種情況用for循環(huán)比較麻煩,先要構(gòu)建一個(gè)等比數(shù)列。用while循環(huán)容易實(shí)現(xiàn):<...code...>
最新回答 / 碰碰碰氣球
是課表還是什么?
@autoclosure
聚合運(yùn)算符
替代
三目運(yùn)算符
優(yōu)化重復(fù)運(yùn)算
自定義運(yùn)算符不在需要打括號(hào)
無參函數(shù),返回值也是函數(shù),只有在調(diào)用時(shí)才會(huì)執(zhí)行,使用@autoclosure后編譯器自動(dòng)轉(zhuǎn)換常量參數(shù)包裝為函數(shù);
swift3的autoclosure的順序做了調(diào)整在參數(shù)后
聚合運(yùn)算符
替代
三目運(yùn)算符
優(yōu)化重復(fù)運(yùn)算
自定義運(yùn)算符不在需要打括號(hào)
無參函數(shù),返回值也是函數(shù),只有在調(diào)用時(shí)才會(huì)執(zhí)行,使用@autoclosure后編譯器自動(dòng)轉(zhuǎn)換常量參數(shù)包裝為函數(shù);
swift3的autoclosure的順序做了調(diào)整在參數(shù)后
2017-01-22
FloatingPoint協(xié)議的2項(xiàng)內(nèi)容:
常用數(shù)據(jù)類型遵循FloatingPoint方便類型轉(zhuǎn)換;
定義pi, infinity, nan方便數(shù)據(jù)處理;
指定數(shù)據(jù)為FloatingPoint范型無需進(jìn)行轉(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ù)處理時(shí)應(yīng)用NaN
非法數(shù)組轉(zhuǎn)換為nan方便計(jì)算
方便過濾非數(shù)值
常用數(shù)據(jù)類型遵循FloatingPoint方便類型轉(zhuǎn)換;
定義pi, infinity, nan方便數(shù)據(jù)處理;
指定數(shù)據(jù)為FloatingPoint范型無需進(jìn)行轉(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ù)處理時(shí)應(yīng)用NaN
非法數(shù)組轉(zhuǎn)換為nan方便計(jì)算
方便過濾非數(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用#替代字符串減少錯(cuò)誤拼寫情況
forKeyPath
label.value(forKeyPath: superviewColor)
forKeyPath
label.value(forKeyPath: superviewColor)
2017-01-22
名稱采用更簡潔的風(fēng)格
queue.async
重寫與OC聯(lián)系緊密的函數(shù),去掉了NS前綴
queue.async
重寫與OC聯(lián)系緊密的函數(shù),去掉了NS前綴
2017-01-22
where的用處:
可以用于switch語句,沒有太大變化;
可以用于if語句,用于模式判斷,表達(dá)限制模式的要求,現(xiàn)在只需要用逗號(hào)替換;
guard語句,對(duì)可選型進(jìn)行解包后,可以用where語句對(duì)解包后的語句進(jìn)行約束;現(xiàn)在也采用逗號(hào)替換,并把解包與檢測參數(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ā)生了改變,類似解包與合法性驗(yàn)證的分開表達(dá)
可以用于switch語句,沒有太大變化;
可以用于if語句,用于模式判斷,表達(dá)限制模式的要求,現(xiàn)在只需要用逗號(hào)替換;
guard語句,對(duì)可選型進(jìn)行解包后,可以用where語句對(duì)解包后的語句進(jìn)行約束;現(xiàn)在也采用逗號(hào)替換,并把解包與檢測參數(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ā)生了改變,類似解包與合法性驗(yàn)證的分開表達(dá)
2017-01-22
枚舉型
大量字符串標(biāo)識(shí)符 調(diào)整為 枚舉型變量,首字母大寫修改為小寫;
Optional<String>.none就是nil的本質(zhì),現(xiàn)在none變成了小寫
大量字符串標(biāo)識(shí)符 調(diào)整為 枚舉型變量,首字母大寫修改為小寫;
Optional<String>.none就是nil的本質(zhì),現(xiàn)在none變成了小寫
2017-01-22
動(dòng)詞函數(shù)名稱:直接作用原對(duì)象
動(dòng)名詞函數(shù)名稱:產(chǎn)生變化的返回值,不改變原值
scores.sorted得到一個(gè)排序的數(shù)組,scores的值沒用變化
reversed不改變原數(shù)組
reverse會(huì)改變原數(shù)組
倒序循環(huán)語句
for i in (1...5).reversed(){
}
動(dòng)名詞函數(shù)名稱:產(chǎn)生變化的返回值,不改變原值
scores.sorted得到一個(gè)排序的數(shù)組,scores的值沒用變化
reversed不改變原數(shù)組
reverse會(huì)改變原數(shù)組
倒序循環(huán)語句
for i in (1...5).reversed(){
}
2017-01-22
函數(shù)的變更:
1參數(shù)必須用括號(hào)標(biāo)示出來
2函數(shù)的調(diào)用需要明確指定參數(shù)名稱
函數(shù)名稱(參數(shù)名稱1:,參數(shù)名稱2:)
1參數(shù)必須用括號(hào)標(biāo)示出來
2函數(shù)的調(diào)用需要明確指定參數(shù)名稱
函數(shù)名稱(參數(shù)名稱1:,參數(shù)名稱2:)
2017-01-22