불로구

[코틀린 기초]6. 자료형 (2) 본문

프로그래밍/코틀린

[코틀린 기초]6. 자료형 (2)

맹이맹이 2021. 2. 14. 19:51
반응형

자료형 검사

- 변수의 자료형을 알아내는 방법은 is 키워드를 사용한다.

fun main(){
    val a = 127;
    val b = "abcd";
    if(a is Int){
        println("인티져");
    }
    if(b is String){
        print("문자열");
    }else if(b !is String){
        print("문자열 아님");
    }
}

Any

- 코틀린에서 Any는 자료형을 결정하지 않은채 변수를 선언할 수 있다.

- Any는 코틀린의 최상위 기본 클래스로 어떠한 자료형을 표현할 수 있다.

- is와 사용하여 자료형을 검사하면, 검사한 자료형으로 스마트 캐스트가 된다.

fun main(){
    val a : Any;
    a = "abcd";
    if(a is String){
        println("스트링");
    }
}

묵시적 변화

- Any형은 모든 클래스의 뿌리이므로 Int, String, 사용자 지정클래스 모두 Any의 자식 클래스이다.

- 즉, 코틀린의 모든 클래스는 Any형이라는 슈퍼 클래스를 가진다

- 자바의 Object의 개념을 생각해보면 도움이 된다.

fun main(){
    var a : Any = 10
    a = 150L
    println("a: $a type: ${a.javaClass}")
}

//결과
a: 150 type: long

- 10을 가진 Int형을 150L로 변경하면 Long형으로 변환된다.

- javaClass는 어떤 기본형을 가지고 있는지 출력할 수 있다.

- 함수를 통해서 만들어 보자.

fun main(){
    sol("abcd")
    sol(123)
}
fun sol(data : Any){
    if(data is String) {
        println("data is String : $data")
    }else if(data is Int){
        println("data is Int: $data")
    }
}

 

반응형
Comments