연산자의 차이점은 Kotlin과 같음

Kailash Vaviya 2024년2월15일
  1. Kotlin is 연산자
  2. Kotlin as 연산자
연산자의 차이점은 Kotlin과 같음

이 문서에서는 Kotlin의 is 연산자와 as 연산자의 차이점을 소개합니다. 이러한 연산자의 사용은 비슷해 보일 수 있지만 서로 다릅니다.

Kotlin is 연산자

Kotlin is 연산자는 유형 검사에 사용됩니다. 인터페이스에 다른 변수가 있는 여러 클래스가 있고 공용 변수를 다른 메서드와 상호 교환하여 사용하려고 한다고 가정합니다.

이 경우 두 메서드에서 요구하는 매개변수의 데이터 유형이 유사한지 확인해야 합니다. 데이터 유형이 유사하지 않으면 코드에서 오류가 발생합니다.

예를 들어, 한 메서드에 문자열 데이터 유형의 매개 변수가 필요한 경우 전달하는 변수의 데이터 유형을 확인해야 합니다. 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?를 사용하는 것이 좋습니다.

로? 연산자는 가능한 경우 캐스팅된 값을 반환합니다. 그렇지 않으면 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 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