在Kotlin文档中,输入check使用is
,但是当我编写此代码时
var a="hello"
if (a is String) print(a)
有警告
warning: check for instance is always 'true'
if (a is String) print(a)
^
非常感谢您的所有回答。
最佳答案
在您的示例中,"hello"
是 String
literal。在Kotlin中,即使您省略了变量的类型,也会推断出其类型。编译器从初始化程序表达式中推断var a
的类型,因此a
的类型为String
。您得到的警告意味着您检查的表达式a
始终是String
。
您的变量声明等效于var a: String = "hello"
,即变量只能引用String
,不允许分配任何其他类型。
例如,如果将变量声明更改为var a: Any = "hello"
,则不会发出警告,因为该变量现在可以保存任何类型的实例,而不仅仅是String
。
关于kotlin - 如何在Kotlin中使用类型检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53242388/