코틀린을 간단히만 배우고 안드로이드 개발을 하다가 좀 더 정확하게 기초부터 알고싶어서 codelabs 의 Kotlin Bootcammp for Programmers 와 kotlinlang.org 의 문서를 보고있다. 그러면서 자바와 다르다고 느껴지는 내용을 블로그에 정리하고자 한다.
- 배열과 리스트를 초기화하는 여러가지 방법
val numbers
= arrayOf(값들) // array 는 mutable 버젼이 없다. 일단 만들면 사이즈는 고정되고 copy제외 원소 추가 삭제가 불가하다.
= arrayOfNulls(사이즈) // 이게 자바에서 new 로 배열 만드는 것과 같은 것 같다.
= listOf(값들) // 후 수정 불가
= mutableListOf(값들) // 후 수정 가능
= primitive자료형ArrayOf(자료혀에 맞는 값들) // 오버헤드를 피할 수 있다. ex) intArrayOf(1, 2, 3)
= Array (사이즈) { it을 활용한 각 인덱스의 초기화 값 }
- 예시 1 : arrayOfNulls 사용과 kotlin 에서 array 를 출력하는 법
val nums = arrayOfNulls<Int>(10)
for(i in 0..9) {
nums[i] = i
}
print(java.util.Arrays.toString(nums))
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
array 를 출력하는 부분은 java 와 kotlin 이 100% 호환된다는 말에 공감하게 만드는 부분이었다.
- 예시 2 : we can mix types!
val mix = arrayOf("hi", 2)
하나의 array 에 다른 타입을 넣을 수 있다.
- 예시 3 : 선언과 동시에 원하는대로 초기화
val array = Array (5) { it * 2 }
println(java.util.Arrays.toString(array))
// [0, 2, 4, 6, 8]
블럭 안의 it 은 index 를 나타냄을 알 수 있다.
- 반복문을 도는 여러가지 방법
for (i in 1..5) print(i)
⇒ 12345
for (i in 5 downTo 1) print(i)
⇒ 54321
for (i in 3..6 step 2) print(i)
⇒ 35
for (i in 'd'..'g') print (i)
⇒ defg
기본 형식은 for ( 로컬변수 in 범위 ) 이다.
downTo 로 거꾸로 돌 수 있고
.. 으로 범위를 지정할 수 있으며 step 으로 몇 칸 움직일지 설정할 수도 있다.
정말 직관적이다..
- while 문은 자바와 같다.
var bubbles = 0
while (bubbles < 50) {
bubbles++
}
println("$bubbles bubbles in the water\n")
do {
bubbles--
} while (bubbles > 50)
println("$bubbles bubbles in the water\n")
// 50 bubbles in the water
// 49 bubbles in the water
- repeat 문이 있다.
repeat(2) {
println("A fish is swimming")
}
//A fish is swimmingA fish is swimming
- 리스트와 반복문의 조합 ( index 와 함께 불러올 수 있다. )
val school = arrayOf("shark", "salmon", "minnow")
for ((index, element) in school.withIndex()) {
println("Item at $index is $element\n")
}
// Item at 0 is shark
// Item at 1 is salmon
// Item at 2 is minnow
'Kotlin' 카테고리의 다른 글
[Kotlin] lambda 와 higher-order function (0) | 2021.08.03 |
---|---|
[Kotlin] 함수 기초 (선언, 반환, default value, compact functions) (0) | 2021.08.03 |
[Kotlin] 기존 클래스의 확장함수 사용 (0) | 2021.07.18 |
[Kotlin] Random (0) | 2021.07.16 |
[Kotlin] 코틀린 입문 - 기본 문법 (0) | 2021.07.16 |