scala 学习笔记(二)

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)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值