手记

Scala菜鸟进阶之路二 控制结构和函数

1、条件表达式

Scala的if/else语法结构和java和C++一样,但是在Scala中if/else表达式有值,这个值就是跟在if或else之后的表达式的值。

举个栗子:

if (x > 0) 1 else -1

也可以将if/else的值赋给变量:

val s = if (x > 0) 1 else -1

在Scala中,每个表达式都有一个类型。

举个栗子:

if (x > 0) 1 else -1 的值得类型为 Int,因为两个分支的类型都是Int

混合类型的表达式:

if(x > 0) "positive" else -1

该表达式的类型是两个分支类型的公共超类型 Any (一个分支是 java.lang.String,另一个分支是Int)

如果else部分缺失,例如

if (x > 0) 1

则有可能 if 没有输出值。但是在Scala中,每个表达式都应该有某种值。为了解决这个问题,Scala引入了 Unit 类,写作 ()。

所以,不带else的if语句等同于

if (x > 0 ) else ()

可以把()当做表示 “无有用值”的占位符,将Unit当做Java或者C++的void

** 当一行语句没有写完需要换行时,需要使用花括号(尤其在REPL中)

例如:

if (x > 0) { 1

} else if(x == 0) 0 else -1

** 在REPL中,可以使用粘贴模式,书写成块的代码

:paste



作者:独行者独行者
链接:https://www.jianshu.com/p/cc56f421fff3


0人推荐
随时随地看视频
慕课网APP