文档章节

内建控制结构之if表达式

柳哥
 柳哥
发布于 2014/06/07 10:45
字数 390
阅读 153
收藏 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的机会,它们能让你的代码既容易阅读又容易重构。

© 著作权归作者所有

柳哥
粉丝 206
博文 405
码字总数 347782
作品 0
杭州
技术主管
私信 提问
加载中

评论(0)

Bash Shell内建命令和保留字

文章来源: https://blog.csdn.net/liuligui5200/article/details/52493100 有需要请查看原文, 我只是拷贝 命令 含义 ! 保留字,逻辑非 : 不做任何事,只做参数展开 . 读取文件并在shell中执行...

osc_51w4wn2j
2019/01/30
8
0
Programming In Scala笔记-第七章、Scala中的控制结构

  所谓的内建控制结构是指编程语言中可以使用的一些代码控制语法,如Scala中的if, while, for, try, match, 以及函数调用等。需要注意的是,Scala几乎所有的内建控制结构都会返回一个值,这...

dabokele
03/31
0
0
Python提供的一些相当实用而灵活的通用数据结构

本章介绍Python的基本数据类型和数据结构,它们按照如下方式组织。 基本数据类型 3.1节介绍整数、浮点数和字符串等基本数据类型。 基本数据结构 3.2节介绍Python的基本数据结构(例如List对象...

人邮异步社区
04/15
0
0
freemarker语法介绍及其入门

FreeMarker标签使用 一、FreeMarker模板文件主要有4个部分组成 1、文本,直接输出的部分 2、注释,即<#--...-->格式不会输出 3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数...

wersdffg
2014/09/30
1.3K
0
Python核心编程第二版(中文).pdf 目录整理

转:https://www.cnblogs.com/yufeihlf/p/5709832.html python核心编程目录 Chapter1:欢迎来到python世界!-页码:7 1.1什么是python 1.2起源 :罗萨姆1989底创建python 1.3特点 1.3.1高级 ...

osc_a9b6fe4t
2019/06/21
2
0

没有更多内容

加载失败,请刷新页面

加载更多

史上最全的“文件或目录损坏且无法读取”的解决办法大集合

问题描述: G盘打不开文件或目录损坏且无法读取,是因为这个I盘的文件系统内部结构损坏导致的。史上最全的“文件或目录损坏且无法读取”的解决办法大集合具体的恢复方法看正文 工具/软件:极...

计算无敌
今天
9
0
2048游戏的最佳算法是什么? - What is the optimal algorithm for the game 2048?

问题: I have recently stumbled upon the game 2048 . 我最近偶然发现了2048游戏。 You merge similar tiles by moving them in any of the four directions to make "bigger" tiles. 您可......

javail
今天
9
0
Spring Cloud Ribbon 客户端负载均衡

Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等,内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略: 简单轮询负载均衡 加权轮询负载均衡 区域...

泥瓦匠BYSocket
今天
7
0
为什么在Python 3中“范围(1000000000000000(1000000000000001))”这么快?

问题: It is my understanding that the range() function, which is actually an object type in Python 3 , generates its contents on the fly, similar to a generator. 据我了解, ra......

技术盛宴
今天
9
0
OSChina 周四乱弹 —— 卖全家桶!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :陈慧娴的单曲《与泪抱拥》 陈慧娴的嗓音加上向雪怀的词,这样的经典组合真不多。#今日歌曲推荐# 《与泪抱拥》- 陈慧娴 手机党少年...

小小编辑
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部