Scala 语句


如果有很好的了解Java语言,那么将很容易学习Scala。 Scala和Java间的最大语法的区别在于;行结束符是可选的。考虑Scala程序它可以被定义为通过调用彼此方法进行通信的对象的集合。现在,简要地看看什么叫做类,对象,方法和临时变量。

  •                     对象 - 对象有状态和行为。例如:狗有状态 - 颜色,名字,品种,它有行为 - 摇摆,吠叫,吃东西。对象是类的一个实例。

  •                     类 - 类可以被定义为一个模板/蓝本以描述行为/指示其类型支持对象。

  •                     方法 - 方法本质上是一个行为。类可以包含许多方法。它是在将逻辑写入方法中,数据进行操作和所有动作被执行。

  •                     字段 - 每个对象都有其独特的一组临时变量,这是所谓的字段。对象的状态是由分配给这些字段中的值创建的。

            第一个Scala程序:

            交互式模式编程:

            调用解释不通过一个脚本文件作为一个参数会显示以下提示:

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

            这将产生以下结果:

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.                     打开命令提示符窗口,然后转到保存程序文件的目录。假设它是 C:>

  4.                     键入“scalac HelloWorld.scala”,然后按回车编译代码。如果代码中没有错误,命令提示符下将自动换到下一行。

  5.                     上面的命令将在当前目录中生成几个类文件。其中一个名称为HelloWorld.class。这是一个字节码可以运行在Java虚拟机(JVM)。

  6.                     现在,键入“scala HelloWorld”来运行程序。

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

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

            基础语法

            关于Scala程序,这是非常要注意以下几点。

  • 区分大小写 -  Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。

  • 类名 - 对于所有的类名的第一个字母要大写。

    如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。

    示例:class MyFirstScalaClass

  • 方法名称 - 所有的方法名称的第一个字母用小写。

    如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写。

    示例:def myMethodName()

  • 程序文件名 - 程序文件的名称应该与对象名称完全匹配。

    保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加“.scala”为文件扩展名。 (如果文件名和对象名称不匹配,程序将无法编译)。

    示例: 假设“HelloWorld”是对象的名称。那么该文件应保存为'HelloWorld.scala“

  • def main(args: Array[String]) - Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分。

            Scala修饰符:

            所有的Scala的组件需要名称。使用对象,类,变量和方法名被称为标识符。关键字不能用作标识符和标识是区分大小写的。Scala支持以下四种类型标识符:

            文字标识符

            字母数字标识符开始以字母或下划线,可以使用字母,数字或下划线。“$”字符在Scala中是保留关键字,标识符不能使用。以下是合法的字母标识符:

age, salary, _value,  __1_value

            以下是非法标识符:

$salary, 123abc, -salary

            运算符标识

            运算符识别符由一个或多个运算符字符。操作字符是可打印的ASCII字符,如+, :, ?, ~ 或#。以下是合法的运算符标识:

+ ++ ::: <?> :>

            Scala编译器将在内部“轧”操作符标识符使它们成为合法的Java标识符,并嵌入$字符。例如,所述标识符:->将内部表示为$colon$minus$greater。

            混合标识符

            混合标识符由一个字母数字识别符,随后是一个下划线和运算符标识。以下是合法的混合标识符:

unary_+,  myvar_=

            在这里,作为一个方法名unary_+定义了一个一元+运算符和myvar_=用来作为方法名称定义了一个赋值运算符。

            立即数标识符

            一个文字标识是包含在反引号(` . . . `)的任意字符串。以下是合法的文字标识:

`x` `<clinit>` `yield`

            Scala关键字:

            下面的列表显示在Scala中的保留字。这些保留关键字不可以被用作常量或变量,或任何其他的标识符名称。

                        摘要                        案例                        抓住                        上课
                        定义                        做                        其他                        延长
                        假                        最后                        终于                        为了
                        对于一些人                        如果                        隐含的                        导入
                        懒惰                        比赛                        新                        空
                        对象                        覆盖                        包                        私人
                        受保护                        返回                        密封了                        超级
                        这个                        扔                        特质                        尝试一下
                        真的                        类型                        瓦尔                        var
                        同时                        与                        产量                         
                        -                        :                        =                        =>
                        <-                        <:                        <%                        >:
                        #                        @                                                  

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

            空行和空格:

            仅包含空格,可能带有注释行,被称为一个空行,并且Scala将会完全忽略它。标记可以通过空格和/或注释分开。

            换行符:

            Scala是面向行的语言,语句可以用分号(;)结束或换行符。分号在声明的结尾通常是可选的。可以键入一个想要的,如果语句出现其本身在一行。在另一方面,如果写在一行多个语句分号是必需的:

val s = "hello"; println(s)

            Scala包:

            包是一个代码命名的模块。例如,Lift 实用包net.liftweb.util。包声明是在源文件中的第一个非注释行,如下所示:

package com.liftcode.stuff

            Scala的包可以被导入,使他们能够在当前编译范围内被引用。下面的语句是导入scala.xml包的内容:

import scala.xml._

            可以导入封装的类和对象,例如,从scala.collection.mutable导入HashMap:

import scala.collection.mutable.HashMap

            可以从一个单一封装的scala.collection.immutable包导入多个类或对象,例如,TreeMap和TreeSet:

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