For문 사용법
일반적인 자바에서 for문을 사용할 수 있다.
val cakes = listOf("carrot", "cheese", "chocolate")
for (cake in cakes) { // 1
println("Yummy, it's a $cake cake!")
}
for(i in 0..3) { // 1
print(i)
}
print(" ")
for(i in 0 until 3) { // 2
print(i)
}
print(" ")
for(i in 2..8 step 2) { // 3
print(i)
}
print(" ")
for (i in 3 downTo 0) { // 4
print(i)
}
print(" ")
결과 값
until은 <3을 뜻한다.
Step으로 설정할 수 있다.
downTo로 뒤에서부터 돌릴 수 있다.
while문 사용법
fun eatACake() = println("Eat a Cake")
fun bakeACake() = println("Bake a Cake")
fun main(args: Array<String>) {
var cakesEaten = 0
var cakesBaked = 0
while (cakesEaten < 5) { // 1
eatACake()
cakesEaten ++
}
do { // 2
bakeACake()
cakesBaked++
} while (cakesBaked < cakesEaten)
}
Iterator 사용법
클래스 내의 변수는 ${animal.name}으로 호출한다.
class Animal(val name: String)
class Zoo(val animals: List<Animal>) {
operator fun iterator(): Iterator<Animal> { // 1
return animals.iterator() // 2
}
}
fun main() {
val zoo = Zoo(listOf(Animal("zebra"), Animal("lion")))
for (animal in zoo) { // 3
println("Watch out, it's a ${animal.name}")
}
}
동등성 연산
자바와 조금 다릅니다.
==는 값의 타입만 검사합니다.
val authors = setOf("Shakespeare", "Hemingway", "Twain")
val writers = setOf("Twain", "Shakespeare", "Hemingway")
println(authors == writers) // 1
println(authors === writers) // 2
In 자바
참조 타입인 연산자 사이에 ==를 사용할 경우 주소 값으로 비교하게 된다.
String은 원시 타입이 아닌 참조 타입 즉 래퍼 타입이기 때문에 ==로는 주소 값이 다르기 때문에 false가 출력된다.
In 코틀린
==가 내부적으로 equals를 호출한다. 따라서 Strin을 비교해도 true가 나온다.
val a: String = "hi"
val b: String = "hi"
println(a == b) // true
참조 타입의 주소 값을 비교(reference comparision)를 할때는???
코틀린은 자바에는 없는 ===연산자를 지원한다. 참조 비교를 위해서 === 연산자를 사용하면 된다. 즉, 자바의 주소 값 비교인 ==와 코틀린의 ===가 동일한 역할을 한다.
삼항 연산자
자바와 같은 방식으로 사용할 수 있다. return 타입을 굳이 붙이지 않아도 컴파일러가 유추해낸다.
fun max(a: Int, b: Int) = if (a > b) a else b // 1
println(max(99, -42))
'스프링 부트 > 코틀린' 카테고리의 다른 글
[코틀린] 인터페이스 사용법 (0) | 2022.03.09 |
---|---|
[코틀린] 데이터 클래스 data class (0) | 2022.03.09 |
[코틀린] 코틀린 기초 함수 변수 선언법 (0) | 2022.03.09 |
[코틀린] 코틀린이란 무엇일까? (0) | 2022.03.09 |
[코틀린] 맥북에 설치하고 스프링 Rest API로 CRUD 해보기 (2) | 2022.03.08 |
댓글