如何在Kotlin中使用类型检查?
在Kotlin文档中,键入check use如何在Kotlin中使用类型检查?,kotlin,typechecking,Kotlin,Typechecking,在Kotlin文档中,键入check use是,但当我编写此代码时 var a="hello" if (a is String) print(a) 有一个警告 warning: check for instance is always 'true' if (a is String) print(a) ^ 非常感谢您提供的所有答案。在您的示例中,“hello”是一个很好的例子。在Kotlin中,即使省略变量的类型,也会推断其类型。编译器从初始值设定项表达式推断var a的类型,因此a的
是
,但当我编写此代码时
var a="hello"
if (a is String) print(a)
有一个警告
warning: check for instance is always 'true'
if (a is String) print(a)
^
非常感谢您提供的所有答案。在您的示例中,“hello”
是一个很好的例子。在Kotlin中,即使省略变量的类型,也会推断其类型。编译器从初始值设定项表达式推断var a
的类型,因此a
的类型是String
。您得到的警告意味着您检查的表达式a
始终是字符串
您的变量声明相当于var a:String=“hello”
,即变量只能引用字符串,不允许分配任何其他类型
例如,如果将变量声明更改为var a:Any=“hello”
,则不会出现任何警告,因为变量现在可能包含任何类型的实例,而不仅仅是字符串,在您的示例中,“hello”
是一个。在Kotlin中,即使省略变量的类型,也会推断其类型。编译器从初始值设定项表达式推断var a
的类型,因此a
的类型是String
。您得到的警告意味着您检查的表达式a
始终是字符串
您的变量声明相当于var a:String=“hello”
,即变量只能引用字符串,不允许分配任何其他类型
例如,如果将变量声明更改为var a:Any=“hello”
,则不会出现任何警告,因为变量现在可能包含任何类型的实例,而不仅仅是字符串我刚刚通过学习Swift了解了如何使用类型检查
open class fruit {}
class banana: fruit() {}
fun test( a: fruit ) {
if (a is banana) print("ok")
}
test(banana())
我刚刚通过学习Swift学会了如何使用类型检查
open class fruit {}
class banana: fruit() {}
fun test( a: fruit ) {
if (a is banana) print("ok")
}
test(banana())
在此代码中,a
将始终是字符串。这就是编译器告诉你的。但是你可以在这样的情况下使用它:它总是一个字符串。在这个代码中,a
总是一个字符串。这就是编译器告诉你的。但是你可以在这样的情况下使用它:它总是一个字符串。这很好,但是这如何回答你自己关于警告的问题呢?这很好,但是这如何回答你自己关于警告的问题呢?