liv*_*iur 1 return-value kotlin output
我开始研究 Kotlin 编程语言,但我有些不清楚,我需要一些帮助来澄清它。
从理论上讲,我很清楚,在 Kotlin 中几乎所有东西都有价值。从实际层面来看,事实并非如此,我发现了这个案例。
有了这个代码:
val isUnit = println("This is an expression")
println(isUnit)
Run Code Online (Sandbox Code Playgroud)
我的输出是
This is an expression
kotlin.Unit
Run Code Online (Sandbox Code Playgroud)
所以首先它打印他的类型的值isUnit,然后打印他的类型。
但如果我这样做
val isUnit = 10
println(isUnit)
Run Code Online (Sandbox Code Playgroud)
输出将是
10
Run Code Online (Sandbox Code Playgroud)
为什么在这种情况下输出不是
10
kotlin.Int
Run Code Online (Sandbox Code Playgroud)
?
定义Unit.toString为:
public object Unit {
override fun toString() = "kotlin.Unit"
}
Run Code Online (Sandbox Code Playgroud)
String.valueOf(i)而println最后还是改为Int类型。它返回 Int 值的 String 表示形式。
您可以使用KClass.qualifiedName打印类的名称:
val isUnit = 10
println(isUnit)
println(isUnit::class.qualifiedName)
Run Code Online (Sandbox Code Playgroud)
印刷:
10
kotlin.Int
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
398 次 |
| 最近记录: |