Scala学习笔记-2 开始编码

开始学习Scala最好的方法就是用它编程

环境搭建:
1.    http://www.scala-lang.org/downloads 下载scala发布包
2.    使用Eclipse,IntelliJ,或NetBeans的Scala插件
为了加快上手速度,抛下一些细节

第一步:使用Scala解释器:
一个编写Scala表达式和程序的交互式"Shell"
scala> 1 + 2
res0: Int = 3
scala> res0 * 3
res1: Int = 9
每个式子产生一个值 res0 res1表示函数的不可变特性

第二步:定义一些变量
val类似final、var可被多次赋值

通过按 两次回车取消掉


第三步:定义一些函数
scala> def max(x: Int, y: Int): Int = {
if (x > y) x
else y
}
max: (Int,Int)Int
函数的定义用def开始。函数名,本例中是max,跟着是括号里带有冒号分隔的参数列表。
每个函数参数后面必须带前缀冒号的类型标注,因为Scala编译器没办法推断函数参数类型。

在max参数列表的括号之后你会看到另一个“: Int”类型标注。
这个东 西定义了max函数的结果类型:result type。
在函数体前的等号提示我们函数式编程的世界观里,函数定义一个能产
生值的表达式。

函数的基本结构


Scala编译器会需要你定义函数的结果类型。
然而在max的例子里,你可以不用写结果类型,编译器也能 够推断它。
同样,如果函数仅由一个句子组成,你可以可选地不写大括号。
这样,可 以把max函数写成这样:
scala> def max2(x: Int, y: Int) = if (x > y) x else y

还有既不带参数也不返回有用结果的函数定义:
scala> def greet() = println("Hello, world!")

Scala的Unit类型比较接近Java的void类型

第四步:编写Scala脚本
尽管Scala的设计目的是帮助程序员建造非常大规模的系统,但它也能很好地缩小到做脚
本的规模。脚本就是一种经常会被执行的放在文件中的句子序列。
把以下代码放在 hello.scala文件中:
println("Hello, world, from a script!")

然后运行:
$ scala hello.scala
Hello, world, from a script!

新建新文件  helloarg.scala:

println("Hello, " + args(0) + "  welcome to "+args(1)+"!")
 
运行: $ scala helloarg.scala liu chengdu
Hello, liu welcome to chengdu!

第五步:functional 的风格编程
Java是指令式的编程,发出一个个指令。
当在编写Scala时,你可能常会发现你自己在用一种更函数式的风格编程。
var i=0
while(i<args.length){ if(i != 0)print(" ")  else print(" ")}

改为:args.foreach(arg=>println(arg))

代码中,在args上调用foreach方法,并把args传入函数。
此例中,你传入了带有 一个叫做arg参数的函数文本:function literal。函数体是println(arg)。
如果 函数文本由带一个参数的一句话组成,你都 不需要显式命名函数和指定参数

总之,函数文本的语法就是,括号里的命名参数列表,右箭头,然后是函数体

scala中的for

for(arg <- args) println(arg)
或者 for(i<- 0 to 2)print(args(i))

其中 arg是 val 每次循环都会新定义一个arg来显示args数组中的值
这个for表达式的第一行代码演示了Scala的另一个通用规则:
如果方法仅带一个参数,你 可以不带点或括号的调用它。[0 to 2==0.to(2)]

小结
写了一些Scala代码,我们学习了一些Scala的基础
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值