作者:Loves_dccBigData
文章目录- Java系列文章目录
- 1、定义变量
- 2、类型转换
- 3、String数据类型
- 4、scala运算符的本质
- 5、流程控制结构
- 6、循环守卫
- 7、循环步长
- 8、循环返回值
- 9、循环中断
本文要记录的大概内容:
提示:以下是本篇文章正文内容
1、定义变量变量类型:与Java一样8种(Int,Long,Short,Byte,Float,Double,Boolean,Char)
—变量可以使用val和var修饰
val:使用val修饰的变量不可变,不能修改,尽量使用val
var:使用var修饰的变量可变,可以修改
val a:Int = 10 //类型可以省略,类型推断 var b:Int = 202、类型转换
只要数据符合要求,直接调对应的to+类型方法进行转换
---scala中的隐式转化 val str1 = "123" val i: Int = str1.toInt print(i)3、String数据类型
scala中的String类型就是Java中的String,创建方法都是一样的
//Any 相当于Java中的Object //AnyRef 是所有引用类型的父类 //AnyVal 是所有值类型的父类 //scala中的字符串拼接,s+"$变量名",底层还是StringBuilder的append方法实现的(s是一个方法) val s1:String = "hello" val s2:String = "world" println(s1+s2) println(s"$s1,$s2")4、scala运算符的本质
在 Scala 中其实是没有运算符的,所有运算符都是方法。
5、流程控制结构1)当调用对象的方法时,点.可以省略
2)如果函数参数只有一个,或者没有参数,()可以省略
(1)顺序结构
(2)选择结构(if)
(3)循环结构(for,while,do…while)
1)for循环结构
for(i <- 1 to 3){ 变量<-1 to 3 表示1到3(都包含)
print(i + " ")
}
for(i <- 1 until 3) {
print(i + " ")
for (elem <- Range(1, 10, 1)) { //底层都是range
println(elem)
}
(1)这种方式和前面的区别在于 i 是从 1 到 3-1
(2)即前闭合后开的范围
6、循环守卫
for(i <- 1 to 3 if i != 2) {
print(i + " ")
}
循环守卫,即循环保护式(也称条件判断式,守卫)。保护式为 true 则进入循环
体内部,为 false 则跳过,类似于 continue。
7、循环步长
for (i <- 1 to 10 by 2) {
println("i=" + i)
}
说明:by 表示步长
8、循环返回值
val res = for(i <- 1 to 10) yield i println(res)9、循环中断
Scala 内置控制结构特地去掉了 break 和continue,是为了更好的适应函数式编程,推荐使用函数式的风格解决break和continue的功能,而不是一个关键字。
Scala中使用breakable
控制结构来实现 break 和 continue 功能
需求 1:采用异常的方式退出循环
try {
for (elem <- 1 to 10) {
println(elem)
if (elem == 5)
throw new RuntimeException //抛出一个异常进行处理
}
}catch {
case e => //不做任何处理
}
println("正常结束循环")
需求 2:采用 Scala 自带的函数,退出循环
Breaks.breakable(
for (elem <- 1 to 10) {
println(elem)
if (elem == 5)
Breaks.break()
}
)
println("正常结束循环")
需求 3:对 break 进行省略
breakable {
for (elem <- 1 to 10) {
println(elem)
if (elem == 5) break
}
}
println("正常结束循环")
}



