codecamp

Scala if 表达式

if 表达式

和其它语言(比如 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 为函数式编程风格。

Scala 类和对象 (五)
Scala while 循环
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }