Scala系列(1)- 变量、字符串

583 阅读2分钟

1. 声明变量

1.1 完整定义

在scala中,我们使用val或者var来定义变量,语法格式如下:

// val 定义的是不可重新赋值的变量
// var 定义的是可以重新赋值的变量
val/var 变量名:变量类型 = 初始值
eg: val name:String = "jack"

[!TIP]

  • scala中定义变量类型写在变量名后面
  • scala的语句最后不需要添加分号
  • 优先使用val定义变量,如果变量需要被重新赋值,才使用var

1.2 类型推断--定义变量

在scala中,我们在定义变量的时候,可以不指定变量的类型,scala可以根据变量的值来指定变量的类型。

示例

// 此处为完整的定义变量的格式
scala> val name:String = "Jack"
name: String = Jack
// 此处在定义变量的时候省略了变量的类型,自动识别变量的类型
scala> val name = "Jack"
name: String = Jack

scala> val age = 23
age: Int = 23

1.3惰性赋值

在需要保存较大的数据时,但是不需要马上加载到JVM内存。可以使用惰性赋值来提高效率。

语法格式:

lazy val/var 变量名 = 表达式

参考代码

scala> lazy val sql = """
     | select
     |  *
     | from
     | user
     | """
sql: String = <lazy>   // 并没有加载到JVM中

知道了怎么定义变量的时候,你可能已经注意到,在scala中,在变量声明和赋值语句之后,我们并没有使用分号,只有在同一行代码中使用多条语句的时候,我们才需要用分号隔开,是不是省去了你每次还要输入分号的烦恼,哈哈

2. 字符串

2.1 使用双引号

val/var 变量名 = “字符串”
eg:
val name = "tom"

2.2 插值表达式

val/var 变量名 = s"${变量/表达式}字符串"
eg:
val name = "jack"
val name1 = s"${name}"

[!TIP]

  • 在定义字符串之前添加s
  • 在字符串中,可以使用${}来引用变量或者编写表达式
scala> val name = "jack"
name: String = jack

scala> val age = 23
age: Int = 23
// 此处 s“” 里面除了${}是引用变量的值,其他的就是把它当作字符串拼接就好
scala> val log = s"name=${name}, age=${age}"
info: String = name=zhangsan, age=30

2.3 使用三引号

val/var 变量名 = """字符串1
字符串2"""
// 可以用来保存大量的数据,上面惰性赋值讲过这里就不讲了