演算子の違い is と Kotlin の as

Kailash Vaviya 2023年6月20日
  1. Kotlin is 演算子
  2. Kotlin as 演算子
演算子の違い is と Kotlin の as

この記事では、Kotlin の is 演算子と as 演算子の違いを紹介します。 これらの演算子の使用法は似ているように見えるかもしれませんが、それらは異なります。

Kotlin is 演算子

Kotlin is 演算子は、型チェックに使用されます。 インターフェイスに異なる変数を持つ複数のクラスがあり、異なるメソッドでパブリック変数を交換可能に使用したいとします。

その場合、両方のメソッドで必要なパラメーターのデータ型が似ているかどうかを確認する必要があります。 データ型が類似していない場合、コードはエラーをスローします。

たとえば、あるメソッドがデータ型 String のパラメーターを必要とする場合、渡す変数のデータ型を確認する必要があります。 Kotlin の is 演算子を使用すると、これを行うことができます。

ブール値を返し、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? 可能であれば、演算子はキャストされた値を返します。 それ以外の場合は、null を返します。

安全でないキャスト演算子 as を使用する

安全でないキャスト演算子 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)
}

エラー出力:

安全でないキャスト演算子を使用するとエラーが発生する

安全なキャスト演算子 as? エラーを回避するのが最善です。

安全なキャスト演算子 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
著者: Kailash Vaviya
Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn

関連記事 - Kotlin Operator