[关闭]
@songlaf 2016-07-18T16:51:25.000000Z 字数 1553 阅读 583

scala笔记

scala


  1. package song.study.scala
  2. object Caculator{
  3. def Add(x:Int,y:Int):Int = {
  4. x + y
  5. }
  6. }
  7. object FirstApp {
  8. def main(args:Array[String]):Unit = {
  9. try{
  10. var half = -1;
  11. var c = if (half >0) 2 else throw new RuntimeException("half <0")
  12. println(c)
  13. }catch{
  14. case e:Exception => println("The Excetion is " + e.printStackTrace());
  15. }
  16. println(Caculator.Add(1, 2))
  17. }
  18. def doWhile(){
  19. var line = ""
  20. do{
  21. line = readLine()
  22. println("Read:" + line)
  23. }while(line != "")
  24. }
  25. }

tuple,array,map

  1. package song.study.scala
  2. object Caculator{
  3. def Add(x:Int,y:Int):Int = {
  4. x + y
  5. }
  6. }
  7. object FirstApp {
  8. def main(args:Array[String]):Unit = {
  9. //Tuple
  10. var pair = (100,"a","b","c")
  11. println(pair._1);
  12. //Array
  13. var array = Array(1,2,3,4,5)
  14. for(i<-0 until array.length){
  15. println(array(i));
  16. }
  17. for(elment <- array){
  18. println(elment)
  19. }
  20. //map
  21. var countrys = Map("China"->142,"USA"->150)
  22. for((k,v) <- countrys)
  23. {
  24. println("Key:" + k + ",Value:" + v)
  25. }
  26. for((k,_) <- countrys){
  27. println("Key:" + k + ",Value:" + countrys(k))
  28. }
  29. countrys.keys.foreach { k =>
  30. println("Key:" + k + ",Value:" + countrys(k))
  31. }
  32. }
  33. }

for循环条件

  1. for(i <- 1 to 5;j <- 1 to 5 if i !=j){
  2. println("-----------------")
  3. println("I:" + i)
  4. println("I:" + j)
  5. println("-----------------")
  6. }

匿名方法,默认参数,返回值,可变参数,递归函数等

  1. def addA(x:Int) = x + 100 //普通方法方法可以自动判断类型,但是如果用在递归的时候必须指明返回值
  2. def addA(x:Int):Int = if(x <=0) 1 else x * addA(x-1) //用了递归所以必须增加返回值
  3. def combine(x:Int,y:Int = 1,z:Int=3) = x + y + z //默认参数值
  4. val add = (x:Int) => x + 200 //匿名方法
  5. def connected(args:Int*)={ //可变参数
  6. var result = 0
  7. for(arg <- args) result += arg
  8. result
  9. }
  10. println(addA(1))
  11. println(add(2))

Scala中val和var的区别

Scala有两种变量,val和var。val就不能再赋值了。与之对应的,var可以在它生命周期中被多次赋值。

lazy

lazy延迟加载,file增加了lazy,那么延迟到使用的时候再去实例.
其实test1这个文件并不存在,但是代码执行没错,因为加了lazy所以代码并未执行.
如果去掉lazy那么执行就会报错
lazy val file = Source.fromFile("E:\text1.txt")

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注