Scala:First Steps in Scala
var and val
简单来说,val声明的变量可以重新修改其引用,val则不行,见下面的例子:
1 def max(x: Int, y: Int): Int = { 2 if(x > y) x else y 3 } 4 5 def max(x: Int, y: Int): Int = if(x > y) x else y 6 7 var list = Array(1, 2, 3) 8 list.foreach(x => println(x)) 9 10 for(x <- list) { 11 println(x) 12 } 13 14 def test(fun: (Int, Int) => Unit): Unit = { 15 fun(5, 6) 16 } 17 18 def printlnXY(x: Int, y: Int): Unit = { 19 println(x) 20 println(y) 21 } 22 23 test(printlnXY) 24 25 test((x, y) => { 26 println(x) 27 println(y) 28 })
采用后缀类型声明法的原因是Scala支持类型推断,这样后面的类型声明在大多数情况下是可以忽略的。
Define some function
基本语法
1 def max(x: Int, y: Int): Int = { 2 if(x > y) x else y 3 }
如果方法只包含一行代码,则可以这样写:
1 def max(x: Int, y: Int): Int = if(x > y) x else y
Iterate with foreach and for
1 var list = Array(1, 2, 3) 2 list.foreach(x => println(x))
语法感觉非常亲切(类似C#)。有点委托、匿名方法和Lamda表达式的味道。
1 def test(fun: (Int, Int) => Unit): Unit = { 2 fun(5, 6) 3 } 4 5 def printlnXY(x: Int, y: Int): Unit = { 6 println(x) 7 println(y) 8 } 9 10 test(printlnXY) 11 12 test((x, y) => { 13 println(x) 14 println(y) 15 })
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步