字符串内插,并格式化数值

scala> val name = "Jerry"
name: String = Jerry

scala> val info = s"My name is $name." // 字符串内插
info: String = My name is Jerry.

scala> val a = 2.7255
a: Double = 2.7255

scala> printf(f"You are $a%.2f.") // 格式化数值,字符串内插
You are 2.73.


正则表达式

scala> val input = "Frank,123 Main,925-555-1943,95122"
res90: String = Frank,123 Main,925-555-1943,95122

scala> val pattern = """([\d]{3}-){2}[\d]{4}""".r  // 正则表达式
pattern: scala.util.matching.Regex = ([\d]{3}-){2}[\d]{4}

scala> pattern.findAllIn(input).toList // 匹配正则表达式
res94: List[String] = List(925-555-1943)



条件表达式

val s = if (n > 0) 1 else -1 // 可以将if/else的值赋给变量
println(s)

val x = if ( n > 0) "postive" else -1 // 两个分支类型的公共超类为Any
println(x)

val u = if ( n > 0) 1 else () // 每个表达式都应该有某种值 if ( n > 0) 1 等价于 if ( n > 0) 1 else ()
println(u)


循环

Scala拥有与Java和C++相同的while和do循环,例如:

var m = 10
q qm > 0) {
  println(m)
  m -= 1   // 注:scala不提供++和--操作符,我们需要使用 +=1 或者 -=1
}


Scala数组遍历, 语法结构: for (i <- 区间)

val common = Array(1,2,3,4)
// 遍历数组
for (i <- 0 until common.length)
  println(i + " : " + common(i))

println("=======================")
// 每两个元素一跳
for (i <- 0 until(common.length,2))
  println(i + " : " + common(i))

println("=======================")
// 倒序遍历
for (i <- (0 until(common.length)).reverse)
  println(i + " : " + common(i))

println("=======================")
// 不需要数组下标,直接访问数组
for (elem <- common)
  println(elem)