scala(2)-使用Scala解释器(interpreter)

转载:http://blog.csdn.net/y3wegy/article/details/8024412

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

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

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

[plain]  view plain  copy
 print ?
  1. bokee@debian70:~$ scala  
  2. Welcome to Scala version 2.9.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_26).  
  3. Type in expressions to have them evaluated.  
  4. Type :help for more information.  
  5.   
  6.   
  7. scala>   


1.简单的输出

[plain]  view plain  copy
 print ?
  1. scala> 1+2  
  2. res0: Int = 3  


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

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

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

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

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


2.再次简单测试

[plain]  view plain  copy
 print ?
  1. scala> res0*3  
  2. res1: Int = 9  

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

[plain]  view plain  copy
 print ?
  1. scala> res0.*(res1)  
  2. res2: Int = 27  
3.简单的输出信息

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

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

4.定义变量

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

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

val:

[plain]  view plain  copy
 print ?
  1. scala> val msg:String="Hello world!"  
  2. msg: String = Hello world!  
  3.   
  4. scala> msg="sssss"  
  5. <console>:8: error: reassignment to val  
  6.        msg="sssss"  
  7.           ^  


var:

[plain]  view plain  copy
 print ?
  1. scala> var msg2="Hello world!2"  
  2. msg2: java.lang.String = Hello world!2  
  3.   
  4. scala> msg2="ssssss"  
  5. msg2: java.lang.String = ssssss  
  6.   
  7. scala> println(msg+";"+msg2)  
  8. Hello world!;ssssss  



5.定义方法:
[plain]  view plain  copy
 print ?
  1. scala> def max(x: Int, y: Int): Int = if(x < y) y else x  
  2. max: (x: Int, y: Int)Int  
  3.   
  4. scala> max(1,2)  
  5. res2: Int = 2  

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

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


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

[plain]  view plain  copy
 print ?
  1. scala> val m=max _  
  2. m: (Int, Int) => Int = <function2>  
  3.   
  4. scala> m(1,3)  
  5. res3: Int = 3  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值