Kotlin 中 is 运算符 与 as 运算符之间的区别
本文介绍 Kotlin 中 is 和 as 运算符的区别。 虽然这些运算符的使用看起来相似,但它们是不同的。
Kotlin is 运算符
Kotlin is 运算符用于类型检查。 假设我们在一个接口中有多个具有不同变量的类,并且我们希望在不同的方法中互换使用公共变量。
在这种情况下,我们将不得不检查两种方法所需参数的数据类型是否相似。 如果数据类型不相似,代码将抛出错误。
例如,如果一个方法需要一个数据类型为 String 的参数,我们需要检查我们传递的变量的数据类型。 Kotlin is operator 允许我们这样做。
它返回一个布尔值,如果 is 运算符的两个操作数具有相同的数据类型,则返回 true。 否则,它返回 false。
Kotlin is 运算符是一个类型检查运算符。 因此,我们可以使用它来检查变量的数据类型是否是我们认为的那样。
代码示例:
fun main(args: Array<String>) {
var s: Any = "Hey, this is Kotlin programming!"
val r = s is String
println("The variable s is a String: " + r)
}
输出:
The variable s is a String: true
Kotlin 的 is 运算符等同于 Java 的 instanceof 运算符。 因此,我们可以用它来检查一个类的对象。
代码示例:
class exampleClass {
var v: String = "Kotlin Programming!"
fun exampleFunc() {
println("Official Android language is - " + v)
}
}
fun main(args: Array<String>) {
val obj = exampleClass() // Creating an object
obj.exampleFunc()
val result = obj is exampleClass // Using the Kotlin is operator
println("The object obj is an instance of the class exampleClass: " + result)
}
输出:
Official Android language is - Kotlin Programming!
The object obj is an instance of the class exampleClass: true
Kotlin as 运算符
Kotlin as
运算符用于显式类型转换。 Kotlin as 不是运行时安全运算符。
如果我们不小心传递了错误的对象,as 运算符将导致错误。 因此,始终建议使用 Kotlin 的安全转换运算符 as?。
as? 如果可能,运算符将返回转换后的值。 否则,它将返回空值。
使用 Unsafe Cast Operator 作为
在我们传递一个可以转换为目标类型的操作数之前,不安全的转换运算符 as 将正常工作。
代码示例:
fun main(args: Array<String>){
val s: String = "Convertible"
val s1: String = s as String
println(s1)
}
Convertible
但是当我们尝试转换一些与目标类型不兼容的东西时,它就会抛出错误。
代码示例:
fun main(args: Array<String>){
val s: String = 18
val s1: String = s as String
println(s1)
}
Error 输出:
安全铸造运营商作为? 最好避免错误。
使用 Safe Cast Operator As?
如前所述,安全转换运算符在无法进行类型转换时将返回 null。
fun main(args: Array<String>){
var s: Any = "Kotlin"
var s1 = 18
// Returns null when casting is not possible
val s2: String? = s1 as? String
println(s2)
}
输出:
null
相关文章
Kotlin 中 Java String[] 的等价物
发布时间:2023/05/13 浏览次数:59 分类:Java
-
本文介绍了 Kotlin 中 Java String[] 的等价物。 我们将看到所有可能的方法来为 Kotlin 实现与 Java 中的 String[] 相同的结果。
将 Java 文件代码转换为 Kotlin
发布时间:2023/05/13 浏览次数:142 分类:Java
-
Kotlin 现在是一种官方的 Android 语言。 因此,您可能希望将 Java 文件更改为 Kotlin。 本文教您如何将 Java 转换为 Kotlin。
在 Kotlin 中使用 forEach
发布时间:2023/05/13 浏览次数:122 分类:Java
-
本文介绍 Kotlin 中 forEach 关键字的概念和使用。 我们将看到一些使用 Kotlin forEach 循环的示例来理解它。
在 Kotlin 中使用 reified 关键字
发布时间:2023/05/13 浏览次数:197 分类:Java
-
reified 关键字是在 Kotlin 中使用泛型时最常使用的编程概念。在本教程中,我们将学习如何使用两种方法解决此问题,包括将类型的类作为泛型函数的参数传递,以及将 reified 关键字与内联函数
Kotlin 中 ! 和 ? 运算符之间的区别
发布时间:2023/05/13 浏览次数:180 分类:Java
-
在 Kotlin 中,断言运算符 !! 和安全调用符 ? 使用 Null 安全。本文介绍空安全的概念。 我们也将通过如何! 和 ? 在 Kotlin 中有助于空安全。
在 Kotlin 中实现 floor 模函数
发布时间:2023/05/13 浏览次数:161 分类:Java
-
在本教程中,我们将学习如何创建一个自定义函数,以使用满足开发人员要求的任何参数来计算此数字与另一个数字的 floor 除法的余数。
在 Kotlin 中继承具有多个构造函数的类
发布时间:2023/05/12 浏览次数:200 分类:Java
-
本文讨论如何扩展具有多个构造函数的类。 构造函数是在创建对象时调用的函数,用于初始化类变量。在 Kotlin 中扩展具有多个构造函数的类
Kotlin中栈数据结构的使用
发布时间:2023/05/12 浏览次数:130 分类:Java
-
本篇文章我们就来学习一下Kotlin中栈的使用。 我们还将看到用于更新和更改 Kotlin 堆栈的标准函数,包括 push、pop、peek、search 和 isEmpty。我们还将研究比 Kotlin 中的堆栈更好的替代方案。
Kotlin中findViewById函数的使用
发布时间:2023/05/12 浏览次数:183 分类:Java
-
Kotlin 中的 findViewById 允许在 ID 的帮助下查看和更新视图。 本文介绍了 Kotlin 中 findViewById 函数的使用。