scala学习笔记3:基本控制结构基础
以下主要记录的是看完scala in programming这本书buildin control structures(第七章)后的要点总结。
1,if,while,do while和for的用法和java类似,不过for语句中可以带filter。
1 val filesHere = (new File(".")).listFiles() 2 for (file <- filesHere if file.getName.endsWith("src")) 3 println(file)
2,通过for循环可以产生集合。格式:for clauses yield body
1 val filesHere = (new File(".")).listFiles() 2 def srcFiles = 3 for { 4 file <- filesHere if file.getName.endsWith("t") 5 } 6 yield file 7 8 for (file <- srcFiles) 9 println(file)
3,异常和java类似,类型可以用TypeNothing表示。并且可以用case匹配来处理异常。
4,scala有match语句,用法示例如下。
1 val firstArg = if (args.length > 0) args(0) else "salt1" 2 3 firstArg match { 4 case "salt" => println("haha") 5 case _ => println("bbb") 6 }
5,scala中没有continue和break语句。workaround:
a,boolean变量条件加到循环判断中
b,函数式(递归)--尽量使用
c,使用scala.util.control.Break包,但是不建议这么做,性能不太好。
6,变量作用域范围问题和java类似,另外尽量采用函数式编程,少用控制结构,少用var,多用val.