内建控制结构之if表达式
博客专区 > 柳哥 的博客 > 博客详情
内建控制结构之if表达式
柳哥 发表于4年前
内建控制结构之if表达式
  • 发表于 4年前
  • 阅读 55
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

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的机会,它们能让你的代码既容易阅读又容易重构。

标签: scala
共有 人打赏支持
粉丝 200
博文 394
码字总数 347782
×
柳哥
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: