Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Kotlin中使用类型检查?_Kotlin_Typechecking - Fatal编程技术网

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

如何在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的

在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
的类型是
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
总是一个字符串。这就是编译器告诉你的。但是你可以在这样的情况下使用它:它总是一个字符串。这很好,但是这如何回答你自己关于警告的问题呢?这很好,但是这如何回答你自己关于警告的问题呢?