大家新年好,年也差不多過完了,需要繼續(xù)通過寫代碼來消耗過年長(zhǎng)的肥肉了。
年前將初級(jí)地圖編輯chapter看完后,今天弱弱地看了接下來要攻克的中級(jí)地圖編輯及l(fā)oading&save游戲數(shù)據(jù)兩個(gè)chapter。雖然年過完了,畢竟玩了將近十天沒有工作,狀態(tài)這些還有待恢復(fù),跟著做了一點(diǎn)可視化操作的步驟后就暫時(shí)做不下去了,索性先擱置一下,將intermediate map tile的章節(jié)留到下周一開始攻克(計(jì)劃五天完成臨摹實(shí)操和做筆記),今天下午就看了看蘋果的swift 4.1官網(wǎng)文檔中的closure,發(fā)現(xiàn)一個(gè)很基礎(chǔ)但也很實(shí)用的排序方法sorted(by: )
var names = ["Alpha","Cinema","Bell","Zap"]
func backward(_ s1:String, _ s2:String)-> Bool {
return s1 > s2
}
var reversedNames = names.sorted(by: backward)
backward方法的意義就在于將相鄰的兩個(gè)單元依據(jù)ASCII碼的順序進(jìn)行字符比較,如果前者大于后者,則return true。其實(shí)就是降序排列。
所以reversedNames數(shù)組中的元素就是按照字母順序倒序排列了。輸出如下:

image.png
playground的好處就在于右邊的output不僅可以看到輸出了什么,還可以看到func被調(diào)用了幾次,output中顯示的是6 times,原因就在于此方法將原names數(shù)組中的4個(gè)元素一一成對(duì)進(jìn)行了比對(duì),這種比對(duì)效率還是很低的,如果元素少還好,如果元素多了,可能就要采用更高級(jí)的排序算法了。