kotlin - 如何在Kotlin中使用类型检查?

标签 kotlin typechecking

在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/

相关文章:

android - 在 Kotlin for Android 中编写库是否有开销?

Haskell FGL 在 DynGraph 上使用图形函数

javascript - 使用 Closure Compiler,Array<T> 注释与仅 Array 相比有什么好处?

java - ceylon 类型检查器 : How to obtain the typed syntax tree?

java - 在 Java 中高效地编码管理变量类型的参数

scala - 无法基于 ...Inclusive[Long] 类型的集合构造具有 Long 类型元素的 ...Inclusive[Long] 类型集合

java - 无法将带有类型参数的 Java 类重写为 Kotlin

android - Dagger /MissingBinding java.util.Map<java.lang.Class<? extends ViewModel>,Provider<ViewModel>> 不能在没有 @Provides 注释的方法的情况下提供

Android Keystore 解密加密数据给出不正确的结果

kotlin - 在 Kotlin 中实现 Cloudinary 签名上传