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

Scala 語句

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

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

  •                     類 - 類可以被定義為一個模板/藍本以描述行為/指示其類型支持對象。

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

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

            第一個Scala程序:

            交互式模式編程:

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

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!

            腳本模式編程:

            讓我們來看一個簡單的代碼,用于打印簡單的一句話: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   }}

            讓我們來看看如何保存文件,編譯并運行該程序。請按照以下的步驟:

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

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

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

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

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

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

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

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

            基礎(chǔ)語法

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

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

  • 類名 - 對于所有的類名的第一個字母要大寫。

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

    示例:class MyFirstScalaClass

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

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

    示例:def myMethodName()

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

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

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

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

            Scala修飾符:

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

            文字標識符

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

age, salary, _value,  __1_value

            以下是非法標識符:

$salary, 123abc, -salary

            運算符標識

            運算符識別符由一個或多個運算符字符。操作字符是可打印的ASCII字符,如+, :, ?, ~ 或#。以下是合法的運算符標識:

+ ++ ::: <?> :>

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

            混合標識符

            混合標識符由一個字母數(shù)字識別符,隨后是一個下劃線和運算符標識。以下是合法的混合標識符:

unary_+,  myvar_=

            在這里,作為一個方法名unary_+定義了一個一元+運算符和myvar_=用來作為方法名稱定義了一個賦值運算符。

            立即數(shù)標識符

            一個文字標識是包含在反引號(` . . . `)的任意字符串。以下是合法的文字標識:

`x` `<clinit>` `yield`

            Scala關(guān)鍵字:

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

                        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。多行注釋可以嵌套,但必須正確嵌套??捎玫娜魏巫⑨尯退凶址紝⒈籗cala編譯器忽略。

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!") 
   }}

            空行和空格:

            僅包含空格,可能帶有注釋行,被稱為一個空行,并且Scala將會完全忽略它。標記可以通過空格和/或注釋分開。

            換行符:

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

val s = "hello"; println(s)

            Scala包:

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

package com.liftcode.stuff

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

import scala.xml._

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

import scala.collection.mutable.HashMap

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

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