(学于《快学Scala》第二版)
- 一
字符串插值法(更好的做法):
var a=9;
val b=a*89
print(f"hello,${b*0},${a*10}")
控制台输入:
import scala.io.StdIn
var print1=StdIn.readInt();/*StdIn.readInt(“请输入”)*/
println(print1)
for循环
scala 并没有与C++或JAVA一样的for循环,但可如下操作:
①for(i<- 1 to 10)
1 to 10是RichInt类的to方法,从1到n(含)的Range;
for(i<-表达式) 让变量i遍历右边表达式中的所有值;
不用定义i是否属于val还是var,该变量的类型是集合的元素类型
如:
val s="hello"
var sum =0
for(i<-0 to s.length-1)
sum+=s(i)//s(i)类似于java的s.charAt(i);
事实上,本例中我们并不需要使用下标
var sum =0
for(ch<-"Hello")
sum+=ch
在scala中for循环用的并不多,书中第12章有讲到**(暂)**
break
使用break时,需要使用Breaks对象中的break方法:
import scala.util.control.Breaks._
高级for循环
可以以变量<-表达式的形式提共多个生成器,用分号分开
for(i<-1 to 3; j<-1 to 3) print(f"${10*i+j}%3d)
每个生成器可以自带守卫,一个以if开头的Boolean表达式
for(i<-1 to 3; j<-1 to 3 if i!j) print(f"${10*i+j}%3d)
也可以使用多个定义,引入可以在循环中使用的变量
for(i<-1 to 3;from = 4-i; j<-from to 3) print(f"${10*i+j}%3d)
yieldJenrey博友的精彩解析