scala包含你想要的标准数值数据类型,在scala中所有的这些数据类型都是对象而不是基本数据类型。
下面给出几个声明数字类型变量的方法:
val b: Byte = 1
val x: Int = 1
val l: Long = 1
val s: Short = 1
val d: Double = 2.0
val f: Float = 2.0
前四个例子如果你不显示的声明数据类型,那么它们将都被默认为Int类型,所以你如果想让数据类型为Byte、Long、Short必须显示的声明数据类型。小数默认为Double类型,所以如果你想让它是Float类型必须显示的声明。
BigInt和BigDecimal
对于非常大的数,可以声明为BigInt/BigDecimal。
val b = BigInt(1234560)
val c = BigDecimal(123456.2344)
你可以像操作其它数值类型一样操作BigInt/BigDecimal:
val b = BigInt(1234567890)
b + b
b * b
b += 1
String 和 Char
val s = "kkkkkk" //string
val c = 'k' //char
val s: String = "kkkkk"
val c: Char = 'k'
String的两种特性
Scala中String有很多特性,这里我们将介绍两种将贯穿全书的特性。
字符串插值
先给出三个变量:
val firstName = "John"
val mi = "C"
val lastName = "Doe"
你可以像下面那样将三者连接在一起
val name = firstName + " " + mi + " " + lastName
但是,在Scala中还提供了更简单的方式:
val name = s"$firstName $mi $lastName"
这种写法能让你简单的将变量包含在字符串之中
println(s"Name:$firstName $mi $lastName")
字符串插值:在双引号前 加上 s , 并在变量前加上 $
同时你可以将表达式用一个 {} 包起来,前面跟上 $
println(s"1+1=${1+1}")
字符串插值的其它好处:
- 你可以在字符串前加上 字面值 f,那样你可以像printf一样格式化字符串
- raw 插值器可以打印不被转义的字符串
- 你还可以建立自己的字符串插值器
关于字符串插值的更多内容可参考:https://docs.scala-lang.org/overviews/core/string-interpolation.html
多行字符串
通过将字符串包含在三个双引号内可以创建多行字符串