基本类型
Boolean,Byte,char,Float,Double,Int,Long,short,Unit
Unit 表示无值,和其他语言中 void 等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()
变量和常量定义
// 格式 var|val 变量名称 (: 数据类型 ) = 变量值
val name = " wang " //val修饰常量,相当于java中的final
var age = 18 // 使用 var 修饰的变量 , 值可以修改
val nickName : String = " 牛牛 " //可以指定数据类型,否则系统自动推断
字符串格式化输出
val name = "wang"
val price = 19.1
val url = "www.baidu.com"
//'f'插值器相当于C语言中的`printf`,可以输出格式化字符串
println(f"$name%s 学费 $pirce%1.2f, 网址是 $url")
printf("%s 学费 %1.2f, 网址是 %s",name,pirce,url) //和使用'f'插值器是等价的
println(s"name=$name, pirce=$pirce, url=$url") //'s'插值器结合'$'符可以直接使用变量
println(s"1 + 1 = ${1 + 1}")// 's'插值器结合'$'符{}内可以写表达式
条件表达式
val score = 70
val res = {
if(score > 60 && score < 70) "及格"
else if(score >=70 && score < 80) "优秀"
else "优秀"
}
循环语句
for(ele <- Array(1,2,3)){ //有点像python中的循环,<- 代替了in
print(ele)
}
for(i <- 0 to 5){//前后都是闭区间
println(i)
}
for(i <- 0 until 6){//前闭后开,相当于Python中的range
println(i)
}
for(i <-arrayif e % 2 == 0) { //添加过滤器,和python相似
println(i)
}
方法定义和调用
// def methodName ([list of parameters]):[return type] = {}
def sum(a:Int, b:Int): Int = {
a+b
}
val res = sum(1,5)
val f1 = res _ //将方法转换为函数
函数的定义和调用
val f1 = (x: Int) => x * 10 //第一种函数定义的方法
f1(10)
val f2:(Int, Int) => Int = (x, y) => x * y
方法作为参数
多值参数
def f(a: String*) = {
for (p <- a){
println(p)
}
}
f(1,2,3)
默认参数
def add(a: Int = 1, b: Int = 7): Int = {
a+b
}
add()
高阶函数(闭包)
部分餐宿应用函数
科里化
科里化和python中的闭包有点相似
偏函数
数组的定义
var x:Array[String] = new Array[String](3) //长度可变,内容可变(var)
var y = new Array[String](3) //长度可变,内容可变(var)
val z = Array(1,2,3) //长度不可变,内容可变(val)