一、变量
语法格式1:var/val 变量名:变量类型 = 变量值
var 定义的是可重新赋值的变量
val 定义的是不可重新赋值的变量
scala语句的最后不加分号
scala> var a:String ="scala"
a: String = scala
scala> a ="java"
a: String = java
scala> val b:String ="pyhton"
b: String = pyhton
scala> b ="shell"
<console>:12: error: reassignment to val
b ="shell"
语法格式2:var/val 变量名 = 变量值
根据变量的值推断变量的类型
对于可重新赋值的变量,只能赋值相同类型的变量
scala> var c="tom"
c: String = tom
scala> val d=10
d: Int = 10
scala> c=20
<console>:12: error: type mismatch;
found : Int(20)
required: String
c=20
^
scala> c="lisi"
c: String = lisi
scala> d=3
<console>:12: error: reassignment to val
d=3
惰性赋值:当一些变量值很大又不需要立马加载到JVM内存中时,可以使用惰性赋值
语法格式:lazy val 变量名 = 表达式
scala> lazy var sql ="select * from student"
<console>:1: error: lazy not allowed here. Only vals can be lazy
lazy var sql ="select * from student"
^
scala> lazy val sql ="select * from student"
sql: String = <lazy>
二、字符串
语法格式1: 双引号 var/val 变量名 =“变量值”
scala> val name ="hadoop"
name: String = hadoop
scala> print(name +" " +name.length)
hadoop 6
语法格式2: 插值表达式
var/val 变量名 =s“${变量值/表达式}字符串”
scala> val name ="hadoop"
name: String = hadoop
scala> var a =s"${name}2"
a: String = hadoop2
语法格式3: 三引号 var/val 变量名 =""“变量值”""
scala> val sql ="""use database1;select * from student"""
sql: String = use database1;select * from student
三、条件表达式
if表达式: 有返回值,在scala中没有三元表达式,可用if表达式替代三元表达式
scala> val name ="hadoop"
name: String = hadoop
scala> val if_test = if(name == "hadoop") 1 else 2
if_test: Int = 1
块表达式: 使用{}表示块表达式,块表达式的值是最后一个表达式的值
scala> val test ={print("hello")
| 1 + 2
| }
hellotest: Int = 3
scala>