直播管家

Scala开发教程(11): if 表达式

jerry Scala 2015年11月25日 收藏

和其它语言(比如Java,C#)相比,Scala只内置了为数不多的几种程序控制语句:if ,while, for ,try match 以及函数调用,这是因为从Scala诞生开始就包含了函数字面量,Scala内核没有定义过多的控制结构,而是可以通过额外的库来扩展程序的控制结构。
Scala的所有控制结构都有返回结果,如果你使用过Java或C#,就可能了解Java提供的三元运算符 ?: ,它的基本功能和if一样,当可以返回结果。Scala在此基础上所有控制结构(while,try,if,等)都可以返回结果。这样做的一个好处是,可以简化代码,如果没有这种特点,程序员常常需要创建一个临时变量用来保存结果。
总的来说,Scala提供的基本程序控制结构,“麻雀虽小,五脏俱全”,虽然少,但足够满足其他指令式语言(如Java,C++)所支持的程序控制功能,而且由于这些指令都有返回结果,可以使得代码更为精简。
if 表达式
Scala语言的if 的基本功能和其它语言没有什么不同,它根据条件执行两个不同的分支,比如,使用Java风格编写下面Scala的if语句的一个例子:

var filename="default.txt"
if(!args.isEmpty)
  filename =args(0)

上面代码和使用Java实现没有太多区别,看起来不怎么像Scala风格,我们重新改写一下,利用if可以返回结果这个特点。

val filename=
   if(!args.isEmpty)   args(0)
   else "default.txt"

首先这种代码比前段代码短,更重要的是这段代码使用val而无需使用var类型的变量。使用val为函数式编程风格。

直播管家