編程雜談(一) - 英文是很重要的
圖:昏睡 - スカーサハさま
在知乎有無數的程序員都曾苦口婆心地勸說各位: 英文不要太差, 昨天我就因為現在式和過去式的分別而白白浪費了整天去處理一個feature....這種血淋淋的例子可一不可再, 我就說一下整個情況吧
//這方法不會改變本來的Iterable, 而是copy一份新的Iterable, 排序好再returnnlist.sortedWith(compareBy({n SimpleDateFormat("yyyy-MM-dd").parse(it.split(dateTag)[1].split(" ").filter { it.contains(Regex("d{4}-d{2}-d{2}")) }[0])n }, {n SimpleDateFormat("HH:mm:ss").parse(it.split(dateTag)[1].split(" ").filter { it.contains(Regex("d{2}:d{2}:d{2}")) }[0])n }))nn//這是直接sort本來的listnlist.sortWith(compareBy({n SimpleDateFormat("yyyy-MM-dd").parse(it.split(dateTag)[1].split(" ").filter { it.contains(Regex("d{4}-d{2}-d{2}")) }[0])n }, {n SimpleDateFormat("HH:mm:ss").parse(it.split(dateTag)[1].split(" ").filter { it.contains(Regex("d{2}:d{2}:d{2}")) }[0])n }))n
我就是用了sortedWith,沒賦值到新的list, 然後改了半天Comparator,list都沒sort好
而且我還是在用Intellij Idea, 能看到fun的return...
望文生義, sorted是已經排列好的意思, 與sort兩者在動作上明顯有別, 而且在kotlin這種 過去-現在 的fun對比很常見(如reversed-reverse), 而且別說kotlin, 即使是其他語言比較深入的資料都得以英文為準, 所以我現在去補英文了(雖然補眼應該更有效,眼殘)這篇沒啥內容,因為暫時精神都花在研究kotlin的data binding方法,所以就隨便寫了一下
說到data binding,國內搜到的基本上大多都是js,java的話因為getter setter從一開始就隨便你擺弄,所以土法binding就是直接在getter setter動手當然這樣寫依賴性強,不符合高內聚低耦合原則,所以我在想幾個方向,同時一些科學網頁也有介紹一些java data binding的方法,而kotlin亦有Delegates.observable這個方法,可行的方法不少,但哪個是在使用上最方便無腦,最適合懶人的則要都寫出來,試一下才能得出結論
推薦閱讀:
※#Kotlin# 小心 Rx 的生命周期
※Kotlin 泛型中的 in 和 out
TAG:Kotlin |