내용 보기

작성자

관리자 (IP : 172.17.0.1)

날짜

2020-07-09 05:43

제목

[Kotlin] 코틀린 기초 01


  • 변수 초기화

변수는 자동으로 초기화 되지 않고 직접 초기화한 다음에 사용 가능하다.
클래스의 Member Varible선언시에는 초기화 하지 않으면 컴파일
에러 발생 메서드 내 Local Varible 선언시에는 초기화 없이 사용 가능하다.

  • 가변 인수 varagr

C#의 params와 같은 키워드다.

1
2
3
4
5
6
7
8
fun <T> varargsFun(a1: Int, vararg array: T) {
    for(a in array) {
        println(a);
    }
}
 
varagsFun<String>(“10”, “hello”, “world”);
varagsFun<Int>(102030);
cs
  • 재귀함수 tailrec

tailrec은 메서드 선언 앞에 붙는 예약어로 재귀함수를 만들 때 사용한다.

1
2
3
4
5
6
7
8
9
10
tailrec fun sum(n: Int): Int {
    if(n <= 0)
        return n;
    else
        return
 
    n + sum(n ? 1);
}
 
Println( sum(3) ); <- 6
cs
  • 문자열 템플릿

문자열 내에서 변수 표시는 “$변수명”으로
작성하고, 표현식은 “${표현식}”으로 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
fun sum(no: Int): Int {
    var sum = 0;
 
    for(I in 1..no) {
        sum += I;
    }
 
    Return sum;
}
 
val name: String = “test”;
println("result : $name / sum : ${sum(10)}"); <- result : test / sum : 55
cs
  • Any 타입

코틀린의 모든 데이터는 모두 객체이며, 데이터 타입을 표현하는 Int, Double, String등은 모두 클래스다.
코틀린의 최상위 클래스는 Any클래스이다.

  • 스마트 캐스트

is 연산자를 이용해 타입을 확인하면 컴파일러가 자동으로 캐스팅을 해준다.

1
2
3
4
5
6
7
8
fun getStringLength(obj: Any): Int? {
    if(obj is String)
        return
 
    obj.length<- 자동으로 Any타입의 obj를 String으로 캐스팅해 length속성을 사용할 수 있다.
 
    return null;
}
cs


출처1

출처2