Scala的求值策略有2种: call by value call by name 如何区分? 例子: def bar(x:Int,y: => Int) = def loop(): Int=loop bar(,loop)//依然能返回结果 //x参数是call by value,先求得loop值之后才能进行之后的计算. bar(loop,)//进入死循环 //y参数是call by name,不需要先进行表达式的值计算.…
主要是基于2种情形 1) 提供读只取/只写入方法,不能随意读写 2)做赋值时变量控制,比如设定值的区间范围等 例子: object test{ def main(args: Array[String]): Unit = { val person = new person person.name_=("zhuSupper") println(person.name) } } class person{ private var _name:String=_ def name=_name d…