Scala编程-第2章 Scala入门初探- 高飞网

第2章 Scala入门初探

2017-03-16 17:10:47.0

第一步 使用Scala解释器

在shell中输入scala,会显示scala命令提示符,输入表达式会显示相应的结果信息,如

scala> 1+2
res0: Int = 3

输出信息解释:

(res0),结果0,自动产生的或用户定义的名称说明计算的值

冒号(:),表达式类型(Int)

等号(=)

表达式得到的结果(3)

第二步 变量定义

    Scala有两种变量,val和var。val类似于Java中的final,而var类似于java中的非final

scala> val msg = "Hello world"
msg: String = Hello world

    因为Scala有自动推断类型的能力,因此,可以不用写出类型。但也可以写出

scala> val msg:String = "Hello again, world"
msg: String = Hello again, world

然后程序中可以使用这个变量了

scala> println(msg)
Hello again, world

但是val的变量不能重新赋值

scala> msg = "123"
<console>:12: error: reassignment to val
       msg = "123"
           ^

要对变量多次赋值应使用var声明


第三步 函数定义

定义一个最大值的函数

scala> def max(a:Int,b:Int):Int={
     | if(a>b) a
     | else b
     | }
max: (a: Int, b: Int)Int

scala> max(2,3)
res2: Int = 3


    有时Scala编译器函数结果类型的定义。比如函数是递归的,就必须定义结果类型,而max函数中,不写结果类型编译器也可以推断出来,如果函数只有一条语句,花括号也可以不写。

scala> def max2(a:Int,b:Int)=if(a>b)a else b
max2: (a: Int, b: Int)Int

scala> max2(4,5)
res3: Int = 5

    下面是既不带参数也不返回结果的函数定义

scala> def greet()=println("Hi,nihao")
greet: ()Unit

scala> greet()
Hi,nihao

    退出scala shell使用:

scala> :quit


第四步 编写Scala脚本

    scala也适应于制造小型的脚本。脚本是一种经常会被执行的放在文件中的句子序列,如把下面的代码放在hello.scala文件中:

/*这是scala脚本*/
println("hello "+args(0))

运行:

[java8@iZ25w5rxg9zZ ~]$ scala scalacode/hello2.scala zhangsan
hello zhangsan


第五步 用while做循环 if做判断

打印入参

var i =0;
while(i<args.length){
    println(args(i))
    i+=1
}

运行:

[java8@iZ25w5rxg9zZ ~]$ scala scalacode/hello2.scala zhangsan lisi wangwu
hello zhangsan
zhangsan
lisi
wangwu

注意:i++在scala中不适用


第六步 用foreach和for做枚举


args.foreach(a=>println(a))

args.foreach(println)

或指令式的for

for(a<-args) println(a)

/*打印后两个*/
for(i <- 1 to 2) println(args(i))