1.启动Scala
输入
scala> 1+ 2
rest0:Int = 3
这行代码会打印:
rest0:Int = 3
退出scala
:quit
2.这行代码包括:
1)一个自动产生的或用户自定义的名称来说明计算的值(rest0,结果0)
2)冒号(:),跟着表达式的类型(Int)
Int类型是Scala包类的Int。Scala里的包与Java里的包很相似:他们把全局命名空间分区,提供信息隐藏机制。所有的java原始类型在scala里都有对于机制。
println("Hello World!")
//类似于java
System.out.println("Hello World!")
val类似于java里的final变量。一旦初始化,val就不能再赋值。与之对应的var是java里的非final变量。var可以在生命周期多次赋值;
3.定义一些函数
scala> def max(x: Int, y: Int): Int = {
if (x > y) x
else y
}
max(Int,Int)Int
盗个图
1)有时候Scala编译器会需要你定义函数的结果类型。比方说,如果函数是递归的,你就必须显式地定义函数结果类型。然而在max的例子里,你可以不用写结果类型,编译器也能够推断它。同样,如果函数仅由一个句子组成,你可以可选地不写大括号。这样,你就可以把max函数写成这样:
def max2(x:Int, y:Int) = if(x > y) x else y
max2:(Int,Int)Int
2)还有既不带参数也不返回结果的函数定义:
def greet() = println("Hello world!")
greet: ()Unit
4.编写scala脚本
hello.scala
println("Hello world,from a scripts!")
运行:
$scala hello.scala
通过scala的名为args的数组可以获得传递给scala的脚本的命令行的参数。scala里数组以0开始,通过在括号里制定索引访问一个元素。因此scala里数组steps的第一个元素是steps(0),不像java里的steps[0].
获取args(0)
println("Hello, " + args(0) + "!")
然后运行:
$scala helloarg.scala planet
这条命令里"planet"作为参数传递,并在脚本里作为args(0)被访问。因此,你会看到:
Hello, planet!
注:scala包含的注释形式是 //开头和 /* */形式中间的字符。
5.使用while循环,if判断
var i = 0
while (i < args.length) {
println(args(i))
i += 1
}
运行:
$scala printargrs.scala Scala is fun
对于scala来说有不需要使用枚举的遍历手段,
避免用索引枚举数组的更好的手段。
6.使用foreach和for枚举
Scala 允许你指令式地编程,但随着你对 Scala 的深入了解,你可能常会发现你自己在用一种更函数式:functional 的风格编程。
函数式编程的特点是:函数式第一结构:
args.foreach(arg => println(arg))
你可以加上类型名,不过如此的话你要把参数部分包裹在括号里(总之这是语法的普通形式):
args.foreach((arg:String) => println(arg))
这句语法运行和上句是一样的;
总而言之,函数语法是,括号里参数列表,右箭头,然后是函数体。
for语句在scala中的使用
for (arg <- args)
println(arg)