![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cSh6ST/btqweKtO0yL/4UzLH7JXbOG7BbNFDPmlok/img.png)
for for 루프의 경우 iterator를 제공하는 모든것을 반복할 수 있음. val intList = (1..10).toMutableList() // print 1 ~ 10 for (i in intList) { print(i) } iterator를 사용하지 않고 index기반으로 for 루프를 사용할 수 있음. val intList = (1..5).toMutableList() for (i in intList.indices) { println("index: $i, value: ${intList[i]}") } withIndex로 index와 value를 한번에 사용할수 있음. val intList = (1..5).toMutableList() for ((index, value) in intList.with..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dTM95x/btqwfzrL8mj/v3Fe3ah3tQpdBK2wM1Icf1/img.png)
Range Expression 코틀린의 범위 표현식은 ..이나 rangeTo(), downTo()로 만들어짐. 기본적으로 마지막 범위를 포함시키며 증가 또는 감소값은 기본 1이다. 숫자 범위 // 두개가 같은 표현 // print 1 ~ 10 for (i in 1..10) println(i) for (i in 1.rangeTo(10)) println(i) // 두개가 같은 표현 // print 10 ~ 1 for (i in 10 downTo 1) println(i) for (i in 10.downTo(1)) println(i) 문자 범위 // a ~ z for (c in 'a'..'z') println(c) // z ~ a for (c in 'a' downTo 'z') println(c) Until 기본..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bCl5I2/btqwhibwzE0/JKC2KNUaLp4di6AITCVjlk/img.png)
IF if문의 경우 자바에서 사용하던 if문과 문법은 같음. 코틀린의 경우 if문은 표현식이므로 값을 반환할수 있음. (삼항식이 없음) 중괄호 사용시 마지막에 쓴 변수가 반환됨. // 삼항식 대용 val max = if (a < b) b else a println(max) // 10 val result = if (a < b) { //... some doing b } else { //... some doing a } println(result) // 10 WHEN 자바의 switch와 비슷함. break; 문이 필요하지 않으며 default: 문은 when의 else문과 같다. when을 사용할때 인자를 받거나 받지 않고 사용할수 있으며 if와 같이 표현식으로 값을 반환할수 있다. 반환값을 가지는 경우 모..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/beqjsx/btqweI3Ndvf/QZ72TOCqpYp85gbZpJx8t0/img.png)
동일성 및 동등성의 의미 동일성 (equality) 두개의 오브젝트가 완전히 동일한 것을 의미한다. 하나의 오브젝트만 존재하는것이며 그 오브젝트를 참조하는 여러개의 레퍼런스 변수를 갖고 있는것을 의미한다. (정확히 같은 메모리 주소를 가지고 있음) 동등성 (identity) 동일한 정보를 가지고 있는 오브젝트를 의미한다. 메모리상에 각기 다른 오브젝트가 존재하는 것이며 각 오브젝트의 기준에 따라 동등하다고 판단한다. 자바와 코틀린의 동등성 연산 자바 자바에서 원시타입 비교시 ==를 사용한다. 참조변수에서 ==를 사용할 경우 주소값을 비교한다. (동일성) 자바에서 두 참조변수의 동등성을 알기 위해서는 .equals를 사용해야한다. (동등성) 코틀린 코틀린에서는 자바와 달리 ==를 사용시 내부적으로 .equ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ybYOg/btqwgADtwZO/xcWdWzOJUKo6BBHxc9CA71/img.png)
변수 선언방식 val / var 방식 타입 val (value) 불변 (자바의 final과 같음) var (variable) 가변 val test ="hello" test = "world" // error var test1 = "hello" test1 = "world" // ok 기본 타입 자바와 코틀린의 큰 차이점중 하나는 코틀린의 경우 모든것이 객체임. 이로인해 자바와는 다르게 원시 타입이 없음. 실제로 없는게 아니라 코틀린이 자동으로 원시 타입을 쓸건지 래퍼 클래스를 쓸건지 결정한다. 숫자 타입 길이 비교 Long 64 Int 32 정수 체계의 기본값 Short 16 Byte 8 Double 64 부동소수점 수 체계 기본값 Float 32 val int = 123 val long = 123456L ..