1.变量:
1.1 val与var的比较:
简单的来说,val相当于java中的final变量,一旦给val变量赋值,则不可以再做修改;而对于var来说,相当于java中的变量,var变量可以动态地进行修改。因此例子不在此赘述。
1.2 val与var的使用比较:
首先给main入口函数传入参数,可以在程序运行参数列表中传入参数:spark、hadoop、hello。对于var的代码风格来说:
package yjq.spark.scala.text1 object HelloScala{ def main(args : Aarry[String]):Unit = { var i =0 while(i < args.length){ println(args(i)) i+=1 } } }
而对于val来说,代码风格是这样的:
package yjq.spark.scala.text1 object HelloScala{ def main(args : Aarry[String]):Unit = { for(arg <- args) println(arg) }
Scala是一门函数式编程语言,在Scala中使用大量的val变量的定义,就是为了避免产生相关副作用,所以开发中应尽量减少var的使用;在表达式没有副作用的条件下,可以使用表达式代替变量名,有利于程序的开发与测试。