scala自学日记(2)-使用Scala解释器(interpreter)

上一篇里面我们介绍了如何安装scala以及如何的配置环境变量

接下来我们就介绍下如何使用解释器来编写简单的scala代码

打开控制台,进入scala开发模式:

bokee@debian70:~$ scala
Welcome to Scala version 2.9.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_26).
Type in expressions to have them evaluated.
Type :help for more information.


scala> 


1.简单的输出

scala> 1+2
res0: Int = 3


直接输入 1 + 2 ,返回res0: Int = 3

res0表示变量名, Int表示类型, 3是值。

Scala的类型定义在冒号后面,和java放在前面不同,和UML类图的属性定义方式一样。

Scala是强类型语言,必须要定义类型,但Scala编译器足够聪明,他能够根据你的值帮你定义变量的类型。

这里res0是个变量名,所以你可以接下来再使用。


2.再次简单测试

scala> res0*3
res1: Int = 9

解释器又给了一个变量res1。
Scala的所有变量都是对象,所有操作都是方法。
所以*也是方法,你可以这样调用

scala> res0.*(res1)
res2: Int = 27
3.简单的输出信息

scala> println("Test msg!")
Test msg!

这个println是个方法,因为Scala有预定义导入一些类,所以可以直接使用。

4.定义变量

Scala有两种类型的变量,val 和var 。

val 变量的值只能初始化一次,再次赋值就发生错误,var就和java的变量相同,可以随时修改。
val 是函数式编程的风格,变量一旦赋值就不要再做修改,从程序上将有很多好处,但有时候做起来会比较绕。

val:

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

scala> msg="sssss"
:8: error: reassignment to val
       msg="sssss"
          ^


var:

scala> var msg2="Hello world!2"
msg2: java.lang.String = Hello world!2

scala> msg2="ssssss"
msg2: java.lang.String = ssssss

scala> println(msg+";"+msg2)
Hello world!;ssssss



5.定义方法:
scala> def max(x: Int, y: Int): Int = if(x < y) y else x
max: (x: Int, y: Int)Int

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

定义变量用val和var,定义方法用def 。
这个max方法有方法参数,返回值类型,方法体。麻雀虽小,五脏俱全了。

Scala的变量表示是变量名: 类型 ,这一点和java甚至其他语言都很不同,和UML风格比较接近。


Scala中方法也是一个类型,或者说是一个值,成为First Class。
所以可以把max看成是个变量名,(Int,Int)Int是它的类型。他可以作为参数传递,也可以赋值给其他变量。

scala> val m=max _
m: (Int, Int) => Int = 

scala> m(1,3)
res3: Int = 3

注意里面的"_"不能省略,而且max和"_"之间有空格
 
OK,本篇到此结束。

你可能感兴趣的:(scala)