scala学习手记3 - var和val
2024-10-18 22:24:38
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好像是在尽力提高语义的丰富性,争取用更简短的表达式表达更丰富的内容;同时呢它又在尝试减少程序结构(或者说是模式)的复杂性,鼓励使用一种直指目标的编程风格。
最新文章
- Centos 6.5 x64环境下 spark 1.6 maven 编译-- 已验证
- devexpress treelist 过滤
- sublime设置
- 关于使用MVVM模式在WPF的DataGrid控件中实现ComboBox编辑列
- 监控Linux性能的18个命令行工具
- easyui中tree型控件不正常显示的处理方法
- Coach(并查集)
- cocos2d-x游戏开发系列教程-坦克大战游戏之坦克的显示
- 【SignalR学习系列】4. SignalR广播程序
- win7旗舰版安装IIS
- The 14th tip of DB Query Analyzer
- Python future使用
- 第二节 Python基础之变量,运算符,if语句,while和for循环语句
- 常用的几条sql语句
- Linux 软连接 (ln命令)
- App Inspector 功能详解
- jquery-实用例子
- GIT(3)----问题汇总
- sdut2852 小鑫去爬山9dp入门)
- 再论C++引用(reference)类型
热门文章
- SharePoint服务器端对象模型 之 使用LINQ进行数据访问操作(Part 4)
- 常用的mysql语句
- Spring Context及ApplicationContext
- Oracle实例的恢复、介质恢复( crash recovery)( Media recovery)
- 【python】-- 类的创建、__new__、__metaclass___
- 【转】如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
- hibernate set的3个属性
- Python3+Selenium3自动化测试-(三)
- (4.6)sql2008中的group by grouping sets
- Kotlin 初级读本