国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Tutoriel Scala / Scala 語(yǔ)句

Scala 語(yǔ)句

如果有很好的了解Java語(yǔ)言,那么將很容易學(xué)習(xí)Scala。 Scala和Java間的最大語(yǔ)法的區(qū)別在于;行結(jié)束符是可選的。考慮Scala程序它可以被定義為通過(guò)調(diào)用彼此方法進(jìn)行通信的對(duì)象的集合?,F(xiàn)在,簡(jiǎn)要地看看什么叫做類,對(duì)象,方法和臨時(shí)變量。

  •                     對(duì)象 - 對(duì)象有狀態(tài)和行為。例如:狗有狀態(tài) - 顏色,名字,品種,它有行為 - 搖擺,吠叫,吃東西。對(duì)象是類的一個(gè)實(shí)例。

  •                     類 - 類可以被定義為一個(gè)模板/藍(lán)本以描述行為/指示其類型支持對(duì)象。

  •                     方法 - 方法本質(zhì)上是一個(gè)行為。類可以包含許多方法。它是在將邏輯寫入方法中,數(shù)據(jù)進(jìn)行操作和所有動(dòng)作被執(zhí)行。

  •                     字段 - 每個(gè)對(duì)象都有其獨(dú)特的一組臨時(shí)變量,這是所謂的字段。對(duì)象的狀態(tài)是由分配給這些字段中的值創(chuàng)建的。

            第一個(gè)Scala程序:

            交互式模式編程:

            調(diào)用解釋不通過(guò)一個(gè)腳本文件作為一個(gè)參數(shù)會(huì)顯示以下提示:

C:>scalaWelcome to Scala version 2.9.0.1Type in expressions to have them evaluated.Type :help for more information.scala>

            鍵入下列文字的Scala提示符,然后按Enter鍵:

scala> println("Hello, Scala!");

            這將產(chǎn)生以下結(jié)果:

Hello, Scala!

            腳本模式編程:

            讓我們來(lái)看一個(gè)簡(jiǎn)單的代碼,用于打印簡(jiǎn)單的一句話:Hello, World!

object HelloWorld {   /* This is my first java program.  
    * This will print 'Hello World' as the output
    */   def main(args: Array[String]) {
      println("Hello, world!") // prints Hello World   }}

            讓我們來(lái)看看如何保存文件,編譯并運(yùn)行該程序。請(qǐng)按照以下的步驟:

  1.                     打開記事本,并添加上面代碼。

  2.                     將文件保存為:HelloWorld.scala。

  3.                     打開命令提示符窗口,然后轉(zhuǎn)到保存程序文件的目錄。假設(shè)它是 C:>

  4.                     鍵入“scalac HelloWorld.scala”,然后按回車編譯代碼。如果代碼中沒(méi)有錯(cuò)誤,命令提示符下將自動(dòng)換到下一行。

  5.                     上面的命令將在當(dāng)前目錄中生成幾個(gè)類文件。其中一個(gè)名稱為HelloWorld.class。這是一個(gè)字節(jié)碼可以運(yùn)行在Java虛擬機(jī)(JVM)。

  6.                     現(xiàn)在,鍵入“scala HelloWorld”來(lái)運(yùn)行程序。

  7.                     可以看到“Hello, World!”打印在窗口上。

C:> scalac HelloWorld.scala
C:> scala HelloWorldHello, World!

            基礎(chǔ)語(yǔ)法

            關(guān)于Scala程序,這是非常要注意以下幾點(diǎn)。

  • 區(qū)分大小寫 -  Scala是大小寫敏感的,這意味著標(biāo)識(shí)Hello 和 hello在Scala中會(huì)有不同的含義。

  • 類名 - 對(duì)于所有的類名的第一個(gè)字母要大寫。

    如果需要使用幾個(gè)單詞來(lái)構(gòu)成一個(gè)類的名稱,每個(gè)單詞的第一個(gè)字母要大寫。

    示例:class MyFirstScalaClass

  • 方法名稱 - 所有的方法名稱的第一個(gè)字母用小寫。

    如果若干單詞被用于構(gòu)成方法的名稱,則每個(gè)單詞的第一個(gè)字母應(yīng)大寫。

    示例:def myMethodName()

  • 程序文件名 - 程序文件的名稱應(yīng)該與對(duì)象名稱完全匹配。

    保存文件時(shí),應(yīng)該保存它使用的對(duì)象名稱(記住Scala是區(qū)分大小寫),并追加“.scala”為文件擴(kuò)展名。 (如果文件名和對(duì)象名稱不匹配,程序?qū)o(wú)法編譯)。

    示例: 假設(shè)“HelloWorld”是對(duì)象的名稱。那么該文件應(yīng)保存為'HelloWorld.scala“

  • def main(args: Array[String]) - Scala程序從main()方法開始處理,這是每一個(gè)Scala程序的強(qiáng)制程序入口部分。

            Scala修飾符:

            所有的Scala的組件需要名稱。使用對(duì)象,類,變量和方法名被稱為標(biāo)識(shí)符。關(guān)鍵字不能用作標(biāo)識(shí)符和標(biāo)識(shí)是區(qū)分大小寫的。Scala支持以下四種類型標(biāo)識(shí)符:

            文字標(biāo)識(shí)符

            字母數(shù)字標(biāo)識(shí)符開始以字母或下劃線,可以使用字母,數(shù)字或下劃線?!?”字符在Scala中是保留關(guān)鍵字,標(biāo)識(shí)符不能使用。以下是合法的字母標(biāo)識(shí)符:

age, salary, _value,  __1_value

            以下是非法標(biāo)識(shí)符:

$salary, 123abc, -salary

            運(yùn)算符標(biāo)識(shí)

            運(yùn)算符識(shí)別符由一個(gè)或多個(gè)運(yùn)算符字符。操作字符是可打印的ASCII字符,如+, :, ?, ~ 或#。以下是合法的運(yùn)算符標(biāo)識(shí):

+ ++ ::: <?> :>

            Scala編譯器將在內(nèi)部“軋”操作符標(biāo)識(shí)符使它們成為合法的Java標(biāo)識(shí)符,并嵌入$字符。例如,所述標(biāo)識(shí)符:->將內(nèi)部表示為$colon$minus$greater。

            混合標(biāo)識(shí)符

            混合標(biāo)識(shí)符由一個(gè)字母數(shù)字識(shí)別符,隨后是一個(gè)下劃線和運(yùn)算符標(biāo)識(shí)。以下是合法的混合標(biāo)識(shí)符:

unary_+,  myvar_=

            在這里,作為一個(gè)方法名unary_+定義了一個(gè)一元+運(yùn)算符和myvar_=用來(lái)作為方法名稱定義了一個(gè)賦值運(yùn)算符。

            立即數(shù)標(biāo)識(shí)符

            一個(gè)文字標(biāo)識(shí)是包含在反引號(hào)(` . . . `)的任意字符串。以下是合法的文字標(biāo)識(shí):

`x` `<clinit>` `yield`

            Scala關(guān)鍵字:

            下面的列表顯示在Scala中的保留字。這些保留關(guān)鍵字不可以被用作常量或變量,或任何其他的標(biāo)識(shí)符名稱。

                        abstract                        case                        catch                        class
                        def                        do                        else                        extends
                        false                        final                        finally                        for
                        forSome                        if                        implicit                        import
                        lazy                        match                        new                        null
                        object                        override                        package                        private
                        protected                        return                        sealed                        super
                        this                        throw                        trait                        try
                        true                        type                        val                        var
                        while                        with                        yield                         
                        -                        :                        =                        =>
                        <-                        <:                        <%                        >:
                        #                        @                                                  

            Scala中的注釋

            Scala支持單行和多行注釋非常類似于Java。多行注釋可以嵌套,但必須正確嵌套。可用的任何注釋和所有字符都將被Scala編譯器忽略。

object HelloWorld {   /* This is my first java program.  
    * This will print 'Hello World' as the output
    * This is an example of multi-line comments.
    */   def main(args: Array[String]) {      // Prints Hello World      // This is also an example of single line comment.
      println("Hello, world!") 
   }}

            空行和空格:

            僅包含空格,可能帶有注釋行,被稱為一個(gè)空行,并且Scala將會(huì)完全忽略它。標(biāo)記可以通過(guò)空格和/或注釋分開。

            換行符:

            Scala是面向行的語(yǔ)言,語(yǔ)句可以用分號(hào)(;)結(jié)束或換行符。分號(hào)在聲明的結(jié)尾通常是可選的??梢枣I入一個(gè)想要的,如果語(yǔ)句出現(xiàn)其本身在一行。在另一方面,如果寫在一行多個(gè)語(yǔ)句分號(hào)是必需的:

val s = "hello"; println(s)

            Scala包:

            包是一個(gè)代碼命名的模塊。例如,Lift 實(shí)用包net.liftweb.util。包聲明是在源文件中的第一個(gè)非注釋行,如下所示:

package com.liftcode.stuff

            Scala的包可以被導(dǎo)入,使他們能夠在當(dāng)前編譯范圍內(nèi)被引用。下面的語(yǔ)句是導(dǎo)入scala.xml包的內(nèi)容:

import scala.xml._

            可以導(dǎo)入封裝的類和對(duì)象,例如,從scala.collection.mutable導(dǎo)入HashMap:

import scala.collection.mutable.HashMap

            可以從一個(gè)單一封裝的scala.collection.immutable包導(dǎo)入多個(gè)類或?qū)ο?,例如,TreeMap和TreeSet:

import scala.collection.immutable.{TreeMap, TreeSet}