1. 不用var.var是可以被不断修改的,而val是不能被修改的.使用val而不是var能让你的程序更强壮,bug更少,更好调试,更容易测试,在并发条件下,更容易调优而获得更好的性能.数学证明我们不用var是没问题的.2. 不用mutable的collection,和var同样的道理.3. 不用null,在java中,我们把null当作一个magic value给return回来,等待调用方进一步判断.但这非常容易让你的代码crash,而且你要到处进行判断.在scala中,可以用Option的