|
Scala 是一種整合了面向?qū)ο筇匦圆⑶矣志哂泻瘮?shù)思想的語(yǔ)言。它同樣也是一種腳本語(yǔ)言,簡(jiǎn)潔高效,的確令我喜愛(ài)。它雖然和 Java 有著千絲萬(wàn)縷的聯(lián)系,但是單純的從語(yǔ)法上說(shuō),有一些和 Java 還是存在比較大的差異。比如說(shuō),new 一個(gè) String 類(lèi)型的數(shù)組和 Java 類(lèi)似:
new Array[String], 就可以了,但是對(duì)于訪(fǎng)問(wèn)這個(gè)數(shù)組中的元素,用圓括號(hào)而不是方括號(hào),也就是說(shuō),Scala 中訪(fǎng)問(wèn)數(shù)組元素應(yīng)該是這種形式:[code ="scala"]greetingStrings(0) = "hello" , 這一點(diǎn)和 Java 和 C++ 都存在差異,這一點(diǎn)在后面寫(xiě)代碼的過(guò)程中我們需要注意。 同樣,Scala 語(yǔ)言的簡(jiǎn)潔性也是令我十分欣賞的地方。比如,新建一個(gè) String 類(lèi)型的數(shù)組,不需要聲名數(shù)組類(lèi)型,也不需要 new, 直接寫(xiě)成: val numNames = Array("zero", "one", "two")
, 和 Java 一樣,Array 也是從 0 開(kāi)始數(shù)元素的個(gè)數(shù)的。 現(xiàn)在來(lái)說(shuō),對(duì)于 Scala 語(yǔ)言感受最深的地方在于它強(qiáng)大到設(shè)計(jì)模式(可能是部分?還沒(méi)看到后面去)都變得無(wú)足輕重。Design Patterns in Scala(http://memuser./2008/03/design-patterns-in-scala.html )這篇 Blog 中將 Scala 實(shí)現(xiàn) 5 種設(shè)計(jì)模式進(jìn)行了清楚的描述。他在 Blog 的結(jié)尾說(shuō): 引用 However, most of them generally solve a language issue than a design issue. If you have a good Language patterns (at least most of them) will become trivial.
關(guān)于 Scala 的對(duì)象和函數(shù)。Scala 不像 Java, Scala 去掉了 Java 中的基本數(shù)據(jù)類(lèi)型,例如,Java 中的基本數(shù)據(jù)類(lèi)型 int, 如果要轉(zhuǎn)換成對(duì)象,需要進(jìn)行裝箱和拆箱的步驟,而 Scala 中 Int 類(lèi)型直接就是對(duì)象。從這個(gè)角度上來(lái)說(shuō),Scala 是一種完全面向?qū)ο蟮恼Z(yǔ)言。關(guān)于 Scala 的函數(shù)特征,給我印象最深刻的是, 引用 No side effects or vars in sight.
Scala 中,力求做到函數(shù)無(wú)副作用,也就是說(shuō),每個(gè)函數(shù)要求有一個(gè)返回值,只干一件事情。這種對(duì)于函數(shù)的要求在 Java 和 C++ 中都是沒(méi)有體現(xiàn)的。在 Scala 的函數(shù)中,如果沒(méi)有顯示的聲名返回值是什么,它會(huì)自動(dòng)返回最后一個(gè)計(jì)算的結(jié)果,這一點(diǎn)會(huì)在后面的代碼調(diào)試中帶來(lái)一定的難度,我們有必要在項(xiàng)目開(kāi)發(fā)的代碼規(guī)范中加入這樣一條:Scala 每一個(gè)函數(shù)都必須顯示的聲名返回值。 Scala 的開(kāi)頭給了我們一種很…迷人的境界,我希望進(jìn)一步的了解學(xué)習(xí) Scala. |
|
|
來(lái)自: 看風(fēng)景D人 > 《scala》