nin*_*u19 8 operator-keyword kotlin
这是一个例子:
val a: Int = 6
val b = a.toLong()
val c = a as Long
Run Code Online (Sandbox Code Playgroud)
.toLong()和as Long关键字有什么区别?什么是更好的使用方法
a.toLong()调用该toLong方法a,因此它将执行该toLong方法所做的任何事情。该方法通常用本机代码实现。例如在JVM上,可以用i2lJVM指令来实现。
as另一方面,运算符根据语言规范执行以下操作:
该表达式执行运行时检查 的运行时类型是否
E是 的子类型T,否则抛出异常。
所以as只在运行时进行检查。“转换”仅在编译时发生,通过语言强制表达式的类型e as T 必须是T.
就 Kotlin 的类型系统而言,Int不是 的子类型Long,因此此检查将始终失败,并且此表达式将始终抛出异常。请注意,这与Java 的类型系统不同。其中原语int 是原语的子类型long。
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |