Scala语法

Scala 基础语法 | 菜鸟教程
http://www.runoob.com/scala/scala-basic-syntax.html
——————————————————————————————————————————————————
Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。
Scala 运行在Java虚拟机上,并兼容现有的Java程序。
Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。

——————————————————————————————————————————————————
【Scala 基础语法】
Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的。
类名 - 对于所有的类名的第一个字母要大写。
方法名称 - 所有的方法名称的第一个字母用小写。
程序文件名 - 程序文件的名称应该与对象名称完全匹配。
def main(args: Array[String]) - Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分。
应用程序应该避免使用"$"开始的标识符,以免造成冲突。

在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。
Scala是面向行的语言,语句可以用分号(;)结束或换行符。

import java.awt.Color // 引入Color
import java.awt._ // 引入包内所有成员

如果想要引入包中的几个成员,可以使用selector(选取器):
import java.awt.{Color, Font}
// 重命名成员
import java.util.{HashMap => JavaHashMap}
// 隐藏成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了
默认情况下,Scala 总会引入 java.lang._ 、 scala._ 和 Predef._,这里也能解释,为什么以scala开头的包,在使用时都是省去scala.的。

——————————————————————————————————————————————————
【Scala 数据类型】
符号字面量 'x 是表达式 scala.Symbol("x") 的简写。

空值是 scala.Null 类型。
Scala.Null和scala.Nothing是用统一的方式处理Scala面向对象类型系统的某些"边界情况"的特殊类型。
Null类是null引用对象的类型,它是每个引用类(继承自AnyRef的类)的子类。Null不兼容值类型。

——————————————————————————————————————————————————
【Scala 变量】
使用关键词 "var" 声明变量,使用关键词 "val" 声明常量。
var myVar : String = "Foo"
val myVal : String = "Foo"

val (myVar1: Int, myVar2: String) = Pair(40, "Foo")
也可以不指定数据类型:
val (myVar1, myVar2) = Pair(40, "Foo")

——————————————————————————————————————————————————
【Scala 访问修饰符】
Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。
如果没有指定访问修饰符符,默认情况下,Scala对象的访问级别都是 public。
Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员。
用private关键字修饰,带有此标记的成员仅在包含了成员定义的类或对象内部可见,同样的规则还适用内部类。

保护(Protected)成员
在 scala 中,对保护(Protected)成员的访问比 java 更严格一些。因为它只允许保护成员在定义了该成员的的类的子类中被访问。而在java中,用protected关键字修饰的成员,除了定义了该成员的类的子类可以访问,同一个包里的其他类也可以进行访问。

——————————————————————————————————————————————————
【Scala 闭包】
var factor = 3
val multiplier = (i:Int) => i * factor

——————————————————————————————————————————————————

posted @ 2016-11-18 16:46  Uncle_Nucky  阅读(142)  评论(0)    收藏  举报