您的位置:首页 > 其它

scala学习笔记(基础知识)

2016-01-27 15:42 357 查看
一、 基本类型

名称位数范围或备注
Byte8bit的有符号数字-128 – 127
Short16 bit有符号数字-32768 – 32767
Int32 bit 有符号数字-2147483648 到 2147483647
Long64 bit 有符号数字-9223372036854775808 到 9223372036854775807
Float32 bit IEEE 754单精度浮点数
Double64 bit IEEE 754双精度浮点数
Char16 bit Unicode字符U+0000 到 U+FFFF
String字符串
Boolean布尔类型
Unit表示无值,和其他语言中void等同
Null空值或者空引用
Nothing所有其他类型的字类型,表示没有值
二、 面向对象思想

scala中一切皆为对象,函数也是对象,数字也是对象

三、 声明变量

1. var 定义变量

var msg="hello scala!"
println(msg)


val 类似于java中的final类型

var msg="hello scala!"

println(msg)


为变量声明类型

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


四、 定义函数

1. 有函数体

scala> def max(x: Int, y: Int): Int = {
if (x > y) x
else y
}
scala> max(3,5)
结果:5


没有函数体,类似于python的lambda

def max2(x: Int, y: Int) = if (x > y) x else y
scala>def greet() = println("Hello, world!")


五、定义类

熟悉python的同学应该很容易接受

class Accumulator{
def add(a:Int,b:Int):Int = {
return a+b
}

}

var acc = new Accumulator()
var sum = acc.add(1,3)
println(sum)
println(acc.add(2,3))


六、定义脚本

编写print.scala脚本

print(args)


调用脚本

$scala print.scala hello


七、控制

1. if

def max(x: Int, y: Int): Int = {
if (x > y) x
else y
}


如果if后面没有else,默认返回Unit

2. while

编写脚本while.scala脚本

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


$scala while.scala 123 abc


for

1). 循环打印1-9

for(i<-1 to 9)
print i


2). 类java增强for循环

for(arg<-args)
print arg


3). foreach循环

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


循环停止用break

scala中不建议使用break,可以使用标志位的方式停止循环

var flag = true
var count = 0
while(flag){
count = count+1
if(count==10)
flag = false
}


如果一定要使用break,可以引用scala.util.control.Breaks._,引用后可以使用break关键字了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scala