什么';Kotlin和#x27;那是什么?输入'vs'作为类型`
下面是一个代码什么';Kotlin和#x27;那是什么?输入'vs'作为类型`,kotlin,Kotlin,下面是一个代码 val firstAny: Any? = someVariable as? Any val secondAny: Any? = someVariable as Any? 对我来说,看起来两者都会产生相同的结果。它们之间有什么区别吗,即as?类型vsas类型??显而易见的是安全铸造。下面的代码不会崩溃,但在类型不匹配时返回null val someVariable: Any? = 1 val someStr: String? = someVaria
val firstAny: Any? = someVariable as? Any
val secondAny: Any? = someVariable as Any?
对我来说,看起来两者都会产生相同的结果。它们之间有什么区别吗,即
as?类型
vsas类型?
?显而易见的是安全铸造。下面的代码不会崩溃,但在类型不匹配时返回null
val someVariable: Any? = 1
val someStr: String? = someVariable as? String // won't crash
另一种是不安全铸造。当类型不匹配时,它将崩溃
val someVariable: Any? = 1
val someStr: String? = someVariable as String? // will crash
对于
Any?
它们是等效的
如果要转换为其他类型,则无法转换该类型时:
将返回someVariable作为?Type
,但null
将因someVariable as Type?
而失败ClassCastException