優點:
- type inference: 這個特性可以減少程式設計師輸入重複的資訊。
- lazy keyword: 可以做到延遲計算的功能
- currying: 讓人更容易產生 partial function。
- 對於接受參數型別為 => Unit(Int等),要傳參數時,可以簡單的用 {
} 代替。詳見範例 1 actor: 多執行緒的函式庫,用 message queue share memory 的問題(當然,還是要看你的寫法。沒寫好還是有 share memory 的問題)
範例1
def repeat(times: Int) (func: => Unit) { for (n <- 1 to times) func } repeat (5) { println("SSS") }
缺點:
- implicit conversion: 這會影響可讀性。因為你在閱讀時,無法立刻知道他在執行時,是以何種物件在執行。不過這個特性應該是為了能夠和 jvm 整合所產生的特性。
- 探討 scala 的函數呼叫與自動推論型別所產生的模糊情形
結論: scala 是一個很好的語言。不過他是 function programming language 的關係,可能不會紅起來。但是下一個如果能夠吸收 scala 的優點,改進 scala 的缺點,我猜能夠成為下一個主流語言。
沒有留言:
張貼留言