掌握三种字符串的格式:
- 普通字符串引用
val str1="hello Scala"
- 其中可以使用${}的方式
-
通过三个字符串 可以将长文本中的格式完整发保存下来“” 防止因为特殊字符导致的输出错误
val name="zhangsan"
val sex ="male"
val age = 25
val people= s"name=${name},sex=${sex},age=${age}"
val SQL=""" select * from user where ""......"" """
数据类型和操作符
-
数据类型(与Java的差别) 1.在scala语言中数据类型是通过I大写字母来开头的 这一点java是使用小写字母来开头的 2.整形时使用Int 而不是:integer 3.scala在定义变量时可以不适用类型,直接让scala编译器来自动推断
-
操作符(与Java的区别) 1.在运算附大多数与java一样,但scala中没有 自增,自减运算符,++ -- 2.在运算附中 scala可以直接使用== !=进行比较,相当于Java中的equals方法 比较两个对象的引用值可以使用eq来比较 关于数据类型的注意点 Any类型是所有类型的父类 大多数的值类型都是通过AnyVal继承的 所有引用类型都是通过AnyRef来继承的(String,数组) Unit相当于空类型 实例为() 相当于java中的void类型 Null类型属于所有引用类型的子类唯一的实例:null,,,,,, Nothing类型是所有类型的子类型,在方法抛出异常的时候返回值类型就是nothing类型
val strl="abc"
val str2 =strl+""
println(strl == str2) //在scala中可以使用 ==
println(str1.eq(str2)) //表示引用值,指的是地址是否一样
条件表达式(与Java的区别)
- 在scala,条件表达式是有返回值的
- 在Scala中没有三元表达式,可以使用if表达式来代替三元表达式
val a=10
val b=if(a>10) 0 else 1
块表达式
- 在scala中,使用{}表示一个块表达式
- 和if表达式一样,块表达式也是有返回值的,值就是最后一个表达式的值
val kai={val a=10;val b=20; a+b}
循环表达式
- 在Scala中可以使用for和while,但一般推荐使用for表达式,因为for表达式语法更简洁
- 在嵌套循环中可以通过一个表达式来书写嵌套循环
- 在for表达式中添加if判断表达式语句,这个if判断就相当于守卫,我们就可以使用守卫使for表达式更加简洁
-
for的推导式:将来可以使用for推导式来生成一个新的集合 在 for循环体中,可以使用yield表达式来构建一个集合,将使用yield的for表达式称之为推导式
- 练习
// 输出1到一百
for (i <- 1 to 100) {
println(i)
} //在这里 1相当于对象,使用<-表示输出的内容
// 使出20个* 通过嵌套循环
for (i <- 1 to 4; j <- 1 to 5) {
println("*")
if (j > 5) {
println("")
}
}
// 使用 守卫
for (i <- 1 to 10 if (i % 3 == 0)) {
// println(i)
i
}
// 推导式
val a1=for(i<- 1 to 10)yield i
println(a1)
var i112=1
while(i112<10){
println(i112)
i112=i112+1 //注意在Scala语言中,没有自增和自减
}
break,continue
-
在Scala中这两个词被已移除了,但如果需要使用,这时就需要导包,,,Scala.util.continue包中的Break类中的breable和break方法
-
breakable{ var i112=1 while(i112<10){ println(i112) if (i112==5) break() i112=i112+1 } }//相当于Java中的break var i1122=1 while(i1122<10){ breakable{ println(i1122) i112=i1122+1 } }//相当于continue