scala中用var和val定义变量都是可以的。

用val定义的变量是不可变的,被初始化后值就固定下来,不可以再被修改(这类似于java中的final关键字);用var定义的变量是可变的,可以任意修改。

仍然要注意这里说的不可变是针对变量本身而言,而非变量所指向的实例。比如说如果定义了一个StringBuffer的val变量如val buffer = new StringBuffer(),那么变量buffer再执行诸如buffer.append(“robin”)这样的操作来修改buffer实例也是可行的。但是如果val变量是一个String类型的字符串如val domain = “zhyea.com”,那么就不可以再对变量domain做任何操作了——因为String类型本身也是final型的,不可变。

在scala编程中应尽量优先使用val。这可以提升不变性和函数式风格。

------------------

在这里有一点体会:scala好像是在尽力提高语义的丰富性,争取用更简短的表达式表达更丰富的内容;同时呢它又在尝试减少程序结构(或者说是模式)的复杂性,鼓励使用一种直指目标的编程风格。

最新文章

  1. Centos 6.5 x64环境下 spark 1.6 maven 编译-- 已验证
  2. devexpress treelist 过滤
  3. sublime设置
  4. 关于使用MVVM模式在WPF的DataGrid控件中实现ComboBox编辑列
  5. 监控Linux性能的18个命令行工具
  6. easyui中tree型控件不正常显示的处理方法
  7. Coach(并查集)
  8. cocos2d-x游戏开发系列教程-坦克大战游戏之坦克的显示
  9. 【SignalR学习系列】4. SignalR广播程序
  10. win7旗舰版安装IIS
  11. The 14th tip of DB Query Analyzer
  12. Python future使用
  13. 第二节 Python基础之变量,运算符,if语句,while和for循环语句
  14. 常用的几条sql语句
  15. Linux 软连接 (ln命令)
  16. App Inspector 功能详解
  17. jquery-实用例子
  18. GIT(3)----问题汇总
  19. sdut2852 小鑫去爬山9dp入门)
  20. 再论C++引用(reference)类型

热门文章

  1. SharePoint服务器端对象模型 之 使用LINQ进行数据访问操作(Part 4)
  2. 常用的mysql语句
  3. Spring Context及ApplicationContext
  4. Oracle实例的恢复、介质恢复( crash recovery)( Media recovery)
  5. 【python】-- 类的创建、__new__、__metaclass___
  6. 【转】如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
  7. hibernate set的3个属性
  8. Python3+Selenium3自动化测试-(三)
  9. (4.6)sql2008中的group by grouping sets
  10. Kotlin 初级读本