1. 声明变量
使用 var 或者 val 声明变量。
注意:
(1) val 修饰的变量是不可变的,注意不可变的不是内容,而是引用;
(2) var 修饰的变量,内容和引用都可变;
(3) 使用 lazy 定义变量后,只有在调用该变量时才会实例化这个变量的值。而且惰性变量只能是不可变变量;
(4) 只有 val 修饰的变量才能被 lazy 修饰;
(5) Scala 语言是弱类型语言。
//变量定义方式
var a:Int = 1
var aa = 1
val aaa:Int = 3
val aaaa = 4
lazy val aaaaa = 4
2. 常用类型
Scala 和 Java 一样,有7种数值类型 Byte、Char、Short、Int、Long、Float、Double 和一个 Boolean 类型,和 Java 不同的是 ,Scala 没有基本类型与包装类型之分,这些类型都是类,有自己的属性和方法。
1.toString()
1.to (10)
scala类型层级关系:

scala 类型转换:

3. 操作符
Scala 中没有操作符,只是以操作符的格式去进行方法调用。
//数学运算符
+、-、* 、/、%
//关系操作符
> < >= <= !
//位操作符
| & ^ ~
//比较对象是否相等
== !=
注意:
(1) a + b 等价于 a.+(b)
(2) Scala 没有++,-- 可以用 +=,-= 代替
4. 条件表达式
表达式的思考方式:以表达式为中心的编程思想
(1) 表达式和语句的区别:表达式有返回值,语句被执行。表达式一般是一个语句块,执行后,返回一个值;
(2) 不使用 return 语句,最后一个表达式即返回值。
if/else 表达式有值,这个值就是跟在 if 或者 else 之后的表达式的值
object ConditionDemo {
def main(args: Array[String]){
var x = 1
//将if/else表达式值赋给变量y
val y = if (x > 0 ) 1 else -1
println(y)
//支持混合型表达式
val z = if(x>0) "success" else -1
println(z)
//如果缺失else,相当于if(x>2) 1 else ()
val m = if(x>2) 1
println(m)
//在scala中,每个表达式都有值,scala中有个unit类,写作(),相当于Java中的 void
val n = if(x>2) 1 else ()
println(n)
//if 嵌套
val k= if(x<0) 0 else if (x>=1) 1 else -1
println(k)
}
执行结果:
1
successs
()
()
1
Scala 的的条件表达式比较简洁,例如:
注意:
(1) 每个表达式都有一个类型;
(2) 条件表达式有值;
(3) Scala 没有 switch 语句。
5. 块表达式
object BlockExpressionDemo {
def main(args: Array[String]){
var x = 0
//在scala中,{}中可以包含一系列表达式,块中最后一个表达式的值就是块的值
val res = {
if (x < 0) {
-1
} else if (x >= 1) {
1
} else {
"error"
}
}
println(res)
val x0 = 1
val y0 = 1
val x1 = 2
val y1 = 2
val distance = {
val dx = x1 - x0
val dy = y1 - y0
Math.sqrt(dx*dx+dy*dy)
}
println(distance)
//块语句,最后一句是赋值语句,值是unit类型的
var res2 = {
val dx = x1 - x0
val dy = y1 - y0
val res = Math.sqrt(dx*dx+dy*dy)
}
println(res2)
}
}
执行结果
error
1.4142135623730951
()
注意:
(1) 块表达式的值是最后一个表达式的值;
(2) 赋值语句的值是 unit 类型的。
6. 循环
在 Scala 中有 for 循环和 while 循环,用 for 循环比较多
for 循环语法结构:for (i <- 表达式/数组/集合)
while (条件语句){表达式}
do { 表达式 } while()
object ForDemo
def main(args: Array[String]){
//每次循环将区间的一个值赋给i
for( i <- 1 to 10)
println(i)
//for i <-数组
val arr = Array("a", "b", "c")
for( i <- arr)
println(i)
val s = "hello"
for(i <- 0 until s.length){
println(s(i))
}
//高级for循环
for(i <- 1 to 3 ; j<- 1 to 3 if i != j)
print((10*i + j) + "")
println()
//for推导式,如果for循环的循环体以yeild开始,则该循环会构建出一个集合或者数组,每次迭代生成其中的一个值。
val v= for ( i <- 1 to 10 )yield i*10
println (v)
}
}
本文为原创文章,如果对你有一点点的帮助,别忘了点赞哦!比心!如需转载,请注明出处,谢谢!
来源:oschina
链接:https://my.oschina.net/u/2931098/blog/2991128