1. 程式人生 > >Scala 控制結構內部揭密

Scala 控制結構內部揭密

Scala 是專為 Java™ 平臺編寫的,因此其語法設計會使 Java 程式碼編碼人員感覺很輕鬆。同時,Scala 為 JVM 提供了函式語言的固有的強大功能,並以這些函式設計概念為出發點。在這一期的 面向 Java 開發人員的 Scala 指南系列 文章中,Ted Neward 將介紹兩種語言之間的細微差異,從一些控制結構(比如 ifwhilefor)開始介紹。正如您將要學習到的那樣,Scala 為這些結構提供了一些在其 Java 等效物中無法獲得的功能和複雜性。

迄今為止,在此 系列 中,我們已經討論了 Scala 對生態環境的保真度,展示了 Scala 如何將眾多的 Java 核心物件功能合併在一起。如果 Scala 只是編寫物件的另一種方式,那麼它不會有任何引人注意的地方,或者說不再那麼功能強大。Scala 的函式概念和物件概念的合併,以及它對程式設計人員效率的重視,這些使得學習 Scala 語言比 Java-cum-Scala 程式設計人員所想象的體驗更加複雜、更加微妙。

關於本系列

Ted Neward 潛心研究 Scala 程式語言,並帶您跟他一起徜徉。在這個新的 developerWorks 系列 中,您將深入瞭解 Scala,並在實踐中看到 Scala 的語言功能。在進行相關比較時,Scala 程式碼和 Java 程式碼將放在一起展示,但(您將發現)Scala 中的許多內容與您在 Java 程式設計中發現的任何內容都沒有直接關聯,而這正是 Scala 的魅力所在!畢竟,如果 Java 程式碼可以做到的話,又何必學習 Scala 呢?

例如,對控制結構(比如 ifwhilefor)使用 Scala 的方法。儘管這些控制結構看起來類似一些老的、還比較不錯的 Java 結構,但實際上 Scala 為它們增加了一些完全不同的特性。本月的文章是關於使用 Scala 控制結構時能夠期望獲得哪些東西的入門級讀物,而不是在製造許多錯誤(並編寫一堆錯誤程式碼)之後,讓您冒著遭受挫折的風險去尋找差異。

本系列的上一篇文章 中,可以瞭解到 Scala 能夠通過定義一些方法來定義 POJO,這些方法模仿基於 POJO 的環境所需的傳統 “getter 和 setter”。在這篇文章發表之後,我收到了 Bill Venners 發來的電子郵件,Bill Venners 是即將發表的正式的 Scala 參考資料使用 Scala 程式設計

(請參閱 參考資料)的合著者之一。Bill 指出了實現上述操作的一個更簡單的方法,即使用 scala.reflect.BeanProperty 標註,如下所示:

本文轉自IBM Developerworks中國