Lewis's Tech Keep

[Kotlin] 코틀린 적응기 - typealias, as import, 람다 break & continue, label, takeif 본문

Kotlin/Kotlin 적응기

[Kotlin] 코틀린 적응기 - typealias, as import, 람다 break & continue, label, takeif

Lewis Seo 2024. 10. 1. 22:11

시작

자주 쓸 것 같다고 생각은 하지 않지만 코드를 정리하거나 필요한 코드를 정리할 수 있는 좋은 방법들이다.

 

배우고 있는 것

https://www.inflearn.com/course/java-to-kotlin

 

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의 | 최태현 - 인프런

최태현 | 이 강의를 통해 Kotlin 언어의 특성과 배경, 문법과 동작 원리, 사용 용례, Java와 Kotlin을 함께 사용할 때에 주의할 점 등을 배울 수 있습니다., 요즘 대세인 코틀린을 공부하고 싶다면?⭐ J

www.inflearn.com

 

 

1. typealias

어떤 타입이 너무 길다면 아래와 같이 축약이 가능하다.

// Type Alias
typealias fruitFilterType = (Fruit) -> Boolean
fun filterFruits(fruits: List<Fruit2>, filter:  fruitFilterType) {

}

 

2. as import

// as import
import com.lannstark.lec17.Fruit as Fruit2

 

3. 람다 break, continue

추천하지는 않는 기능이다. 코드 형식이 알기 어렵고 이런 코드들이 너무 많으면 가독성도 나빠질 수 있다.

fun main() {
    val numbers = listOf(1, 2, 3)

    // 익숙하지 않기 때문에 추천하지는 않음
    // break
    run {
        numbers.forEach { number ->
            if (number == 2) {
                return@run
            }
        }
    }

    // continue
    numbers.forEach { number ->
        if (number == 2) {
            return@forEach
        }
    }
}

 

4. label

label 을 등록하고 break 후에 해당 label로 이동을 바로 하도록 유도할 수 있다.

잘못 사용 시 실수가 발생할 수 있기에 사용 시 조심해야 할 것 같다.

fun main() {
    // 비추 유지보수가 어려워짐
    // label
    // break 할 때 label 지점의 loop를 break
    a@ for (i in 1..100) {
        for (j in 1..100) {
            if (j==2) {
                break@a
            }
        }
    }
}}

 

5. takeIf

조건에 만족하지 않으면 null, 조건을 만족하면 해당 값을 반환하도록 할 수 있다.

// takeif
fun getNumberOrNull(number: Int): Int? {
    return number.takeIf { number > 0 }
}
Comments