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
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 }
}
'Kotlin > Kotlin 적응기' 카테고리의 다른 글
[Kotlin] 코틀린 적응기 - 기본 강의 완료 후. 24.10.01 (0) | 2024.10.01 |
---|---|
[Kotlin] 코틀린 적응기 - scope function (2) | 2024.10.01 |
[Kotlin] 코틀린 적응기 - 람다, 컬렉션 함수형 (0) | 2024.10.01 |
[kotlin] 코틀린 적응기 - 배열 & 컬렉션, 함수 (0) | 2024.10.01 |
[Kotlin] 코틀린 적응기 - 중첩 클래스, data class & enum class & sealed class (0) | 2024.10.01 |
Comments