scala是什么?
Scala 是一门 函数式的面向对象语言。他运行在Java虚拟机上.
第一个Scala例子
作为学习Scala的第一步,我们将首先写一个标准的HelloWorld,这个虽然不是很有趣,但是它可以让你对Scala有一个最直观的认识而不需要太多关于这个语言的知识。我们的Hello world看起来像这样:
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
程序的结构对Java程序员来说可能很令人怀念:它由一个main函数来接受命令行参数,也就是一个String数组。这个函数的唯一一行代码把我们的问候语传递给了一个叫println的预定义函数。main函数不返回值(所以它是一个procedure method)。所以,也不需要声明返回类型。
对于Java程序员比较陌生的是包含了main函数的object语句。这样的语句定义了一个单例对象:一个有且仅有一个实例的类。object语句在定义了一个叫HelloWorld的类的同时还定义了一个叫HelloWorld的实例。这个实例在第一次使用的时候会进行实例化。
大家可能会发现main函数并没有使用static修饰符,这是由于静态成员(方法或者变量)在Scala中并不存在。Scala从不定义静态成员,而通过定义单例object取而代之。
为何学习Scala(特点)
可拓展•面向对象
•函数式编程
兼容JAVA
•类库调用
•互操作
语法简洁
•代码行短
•类型推断
•抽象控制
静态类型化
•可检验
•安全重构
支持并发控制
•强计算能力
•自定义其他控制结构
Scala基础语法
声明与定义(赋值): val,常量声明 val x:T val x:T=e
var,变量声明 var x:T var x:T=e
类型省略(默认类型) val x=e var x=e
声明省略(连续声明) val x1,x2,x3 等价于 val x1;val x2;val x3 var x1,x2,x3:T=e等价于var xn:T=e
def,函数声明 def adder(m:Int,n:Int) =m+n
无参函数 def adder()=e
type,类型声明 type T1 = String => Int
class,类声明
class Complex(real: Double, imaginary: Double) {
def re() = real
def im() = imaginary
}
object,对象声明
object Timer {
def oncePerSecond(callback: () => Unit) {
while (true) { callback(); Thread sleep 1000 }
}
def timeFlies() {
println("time flies like an arrow...")
}
def main(args: Array[String]) {
oncePerSecond(timeFlies)
}
}