美文网首页spark
Scala菜鸟进阶之路二 控制结构和函数

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

作者: lukeyan | 来源:发表于2017-08-18 08:32 被阅读37次

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

相关文章

网友评论

    本文标题:Scala菜鸟进阶之路二 控制结构和函数

    本文链接:https://www.haomeiwen.com/subject/syhgrxtx.html