为什么80%的码农都做不了架构师?>>>   

Scala的if语句与其它语言相比没有什么不同。它可以检测条件并根据其是否为真,执行两个分支中的一个。下面是常见的以指令式风格编写的例子:

package scalaTest
object Test4 {def main(args:Array[String]) {var filename = "default.txt"if(!args.isEmpty) filename = args(0)println(filename)}
}

这段代码声明了变量filename,并初始化为默认值。然后使用if表达式检查程序是否带有参数。如果是,就把变量改成参数列表中定义的值,如果没有参数,就保持变量的默认值。这段代码还有优化的余地,如下例:

package scalaTest
object Test4 {def main(args:Array[String]) {val filename = if(!args.isEmpty) args(0) else "default.txt"println(filename)}
}

这一次,if有了两个分支。如果args不为空,那么选择初始化元素args(0),否则,选择默认值。这段代码的实际优点在于使用val而不是var。使用val体现了函数式的风格,并且具有与java的final变量类似的效果。
使用val而不是var的第二点好处是它能更好地支持等效推论。在表达式没有副作用的前提下,引入的变量等效于计算它的表达式。因此,无论何时都可以用表达式替代变量名。如下:

package scalaTest
object Test4 {def main(args:Array[String]) {println(if(!args.isEmpty) args(0) else "default.txt")}
}

注:尽可能寻找使用val的机会,它们能让你的代码既容易阅读又容易重构。

转载于:https://my.oschina.net/fhd/blog/275393

内建控制结构之if表达式相关推荐

  1. Scala学习笔记04:内建控制结构

    Scala学习笔记04:内建控制结构 scala提供的控制结构并不算多,因为在函数式编程中,可以自己开发出各种功能的控制结构,所以scala提供的原生控制结构仅仅够用为止. 1.if - 判断 if是 ...

  2. Spark基础学习笔记12:Scala内建控制结构

    文章目录 零.本讲学习目标 一.条件表达式 (一)语法格式 (二)执行情况 (三)案例演示 任务1.根据输入值的不同进行判断 任务2.编写Scala程序,判断奇偶性 二.块表达式 (一)语法格式 (二 ...

  3. tcl/tk参考——tcl内建命令

    TCL内建命令 命令更新中,有链接的命令可以直接点击查看 字符串操作 append - 在变量后添加变量 binary - 从二进制字符串中插入或释放数值 format - 使用sprintf的风格格 ...

  4. OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)...

    OpenGL ES着色器语言之语句和结构体(官方文档第六章) OpenGL ES着色器语言的程序块基本构成如下: 语句和声明 函数定义 选择(if-else) 迭代(for, while, do-wh ...

  5. 深入浅出学Hive:Hive内建操作符与函数开发

    目录: 初始Hive Hive安装与配置 Hive内建操作符与函数开发 Hive JDBC Hive参数 Hive高级编程 Hive QL Hive Shell基本操作 Hive优化 Hive体系结构 ...

  6. Linux常用内建命令笔记

    Linux系统为了便于运维人员对系统的操作,所以内建了很多shell命令.一般来说linux系统的内建命令会比执行外部的shell命令执行更快.因为执行内建命令相当于调用当前shell进程里面的函数, ...

  7. [原创]java WEB学习笔记71:Struts2 学习之路-- struts2常见的内建验证程序及注意点,短路验证,非字段验证,错误消息的重用...

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. JDBC+Servlet+JSP整合开发之26.JSP内建对象

    –使用内建对象的目的  –内建对象  –out 内建对象  –request 内建对象  –response 对象  –session 内建对象  –pageContext 内建对象  –applic ...

  9. python文件输入符_python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)...

    一.变量和表达式 >>> 1 + 1 2 >>> print 'hello world' hello world >>> x = 1 >&g ...

最新文章

  1. 用vs2017编写html,vs2017可以编写java
  2. python爬虫个人小结
  3. 储存卡怎么格式化为fat32_电脑复制文件到U盘提示文件容量太大该怎么办?
  4. openresty 环境搭建
  5. (转)40种网站设置技巧
  6. osi参考模型(开放系统互连参考模型)
  7. 一建机电实务教材电子版_必背!一建《机电实务》高频考点,每日一背
  8. HDU-3065 病毒侵袭持续中 AC自动机又是一板子!
  9. Linux系统中网络配置详解(一)
  10. 高仿微信聊天界面长按弹框样式
  11. adb命令——简单常用命令介绍:将文件从手机上传输到电脑里:adb pull /sdcard/123.png c:\users\del\desktop...
  12. scrapy使用用Xpath提取深层标签
  13. 解读ACL2020的一篇机器阅读理解方向的论文(Recurrent Chunking Mechanisms for Long-text machine reading comprehension)
  14. oracle自带的缓存,ORACLE缓存表与ORACLE缓存
  15. 缺省(默认)端口参数
  16. 北大郭炜算法课笔记整合
  17. GitHub超6.8万星,最全Python入门算法来了
  18. LiteCAD参考文档的学习二(命令接口,命名对象之块、块的引用、块的属性、命令接口块的插入、块的复制)
  19. 西门子 SMART PLC 扫码串口通讯
  20. 永辉超市第三季营收222亿:净亏7.8亿 卖金龙鱼股权套现1.7亿

热门文章

  1. 在网上看到一个故事,我觉得挺感人
  2. DHCP详细配置实验总结
  3. Linux记录-salt命令
  4. Netty中ByteBuf 的零拷贝
  5. ubuntu 14.04 安装chrome及给chromium 安装 flash player
  6. 转发2篇大学生写的博文---看了比较有感触
  7. html的meta属性
  8. 利用spring AOP注解实现日志管理
  9. jqueryonclick事件_jquery动态移除/增加onclick属性详解
  10. 硬盘坏道拷贝软件_什么是数据恢复工具,一款一键恢复软件