本帖最後由 pl8888 於 2016-3-21 00:58 編輯
最簡單 Java Default 嘅 List 、Map 只要你曾經 Pass 過入去某 Function, 你已經唔可以 Guarantee 出番黎嘅 Object 係同一個 Object。
Java 有 Collections.unmodifiableList, Collections.unmodifiableSet, Collections.unmodifiableList ... 只不過 Scala prefers immutable collection.
一個 Java Class 只要有一個 Setter 佢已經係 mutable
Setter 只不過係一個 convention, 有 setter 唔等於 mutable, 冇 setter 唔等於 immutable, 要睇個 class 既 contract 點 define.
最多人最鐘意某就係 Assume 佢無變,然後 Runtime 先知 「啊 原來佢呢度郁咗我個 Object 」
如果依D coder 讀 OOP/programming course 一定肥佬. 做 coding 一定要睇 class/function contract, 唔會 assume 某D野. 如果咁懍野去寫 program, 個 program D問題一定一羅羅.
呢個肯定係寫過 Java 會遇到嘅「問題」。但唔覺得呢個問題只係因為 Working in Java way
每個 coder 都有自己覺得就手既 language. 有人鍾意 Scala, 有人鍾意 Java, 有人鍾意 PHP, 有人鍾意 Javascript, 唔使踩其他 language. 唔係 Working in xxx way, 而係要有 programming mindset, 冇既話用乜野 language 寫都死.
讀過 computer science (唔係個D所謂教寫 program 既 course) 既人, 就會知到寫 program 係易學難精既事, 好似作文一樣.
但唔同作文, 有陣時可以講下"創意", 唔使講邏輯 (即係老作), 但寫 program 唔講邏輯一定好大鑊, 所以都係個句, 要有 programming mindset, 唔係吹下水就得. |