gpt4 book ai didi

scala - `if` 语句的返回类型是什么

转载 作者:行者123 更新时间:2023-12-04 15:58:19 24 4
gpt4 key购买 nike

从 Programming Scala book 我在下面的代码中读到了 configFilePath常量将是 Unit 的类型:

scala> val configFilePath = if (configFile.exists()) {
| configFile.getAbsolutePath()
| }
configFilePath: Unit = ()

但是当我在 REPL 中执行此代码时,我得到类型为 Any 的结果.为什么?

书中示例使用 Scala 2.8,我使用 Scala 2.10。

最佳答案

if (cond) { expr }返回 Unit 的公共(public)基类型和 expr 的类型, 就像 if (cond) { expr } else { () } .

AnyVal对于 Int , Char等等,Unit对于 UnitAny对于 AnyRef :

scala> if ( false ) 1
res0: AnyVal = ()

scala> val r = if ( false ) { () }
r: Unit = ()

scala> if ( false ) ""
res1: Any = ()

关于scala - `if` 语句的返回类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16436886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com