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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容