변수는 자동으로 초기화 되지 않고 직접 초기화한 다음에 사용 가능하다. 클래스의 Member Varible선언시에는 초기화 하지 않으면 컴파일 에러 발생 메서드 내 Local Varible 선언시에는 초기화 없이 사용 가능하다. C#의 params와 같은 키워드다. | fun <T> varargsFun(a1: Int, vararg array: T) { for(a in array) { println(a); } } varagsFun<String>(“10”, “hello”, “world”); varagsFun<Int>(10, 20, 30); | cs |
|
tailrec은 메서드 선언 앞에 붙는 예약어로 재귀함수를 만들 때 사용한다. | tailrec fun sum(n: Int): Int { if(n <= 0) return n; else return n + sum(n ? 1); } Println( sum(3) ); <- 6 | cs |
|
문자열 내에서 변수 표시는 “$변수명”으로 작성하고, 표현식은 “${표현식}”으로 작성한다. | 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 |
|
코틀린의 모든 데이터는 모두 객체이며, 데이터 타입을 표현하는 Int, Double, String등은 모두 클래스다. 코틀린의 최상위 클래스는 Any클래스이다. is 연산자를 이용해 타입을 확인하면 컴파일러가 자동으로 캐스팅을 해준다. | fun getStringLength(obj: Any): Int? { if(obj is String) return obj.length; <- 자동으로 Any타입의 obj를 String으로 캐스팅해 length속성을 사용할 수 있다. return null; } | cs |
|
|