본문 바로가기
IT개발/Kotlin

Kotlin 유용한 함수

by xground 2019. 12. 19.
반응형

조건 확인 함수

 

특정 값의 일치 여부 확인 : check, require

 

인자의 값(true/false)에 따른 처리 (false일 때에 대한 처리용)

  • false일때 exception 발생

  • flase일때 exception 발생 및 메세지 출력 (lazyMessage)

 

fun check(value: Boolean) (throws IllegalStateException)

fun check(value: Booelan, lazyMessage: () -> Any) (throws IllegalStateException)

fun <T : Any> checkNotNull(value: T?) : T (throws IllegalStateException)

fun <T : Any> checkNotNull(value: T?, lazyMessage: () -> Any) : T (throws IllegalStateException)

 

fun require(value: Boolean) (throws IllegalArgumentException)

fun require(value: Boolean, lazyMessage: () -> Any) (throws IllegalArgumentException)

fun <T : Any> requireNotNull(value: T?) : T (throws IllegalArgumentException)

fun <T : Any> requireNotNull(value: T?, lazyMessage: () -> Any) : T (throws IllegalArgumentException)

 

fun main(args: Array<String>) {
	val arg = false
    //1번 형태
    check(arg)
    
    //2번 형태
    check(arg) { "오류가 발생했습니다."}
}

//1번 메세지
Exception in thread "main" java.lang.IllegalStateException: Check failed.
 at FileKt.main (File.kt:4) 

//2번 메세지
Exception in thread "main" java.lang.IllegalStateException: 오류가 발생했습니다.
 at FileKt.main (File.kt:4) 

 

명시적으로 실행 중단하기 : error, TODO

 

fun error(message: String): Nothing (throws IllegalStateException)

fun TODO(): Nothing (throws NotImplementedError)

fun TODO(reason: String): Nothing (throws NotImplementedError)

 

fun main(args: Array<String>) {
    error("에러가 발생했습니다.")
    TODO("작성해야 할 부분")
}

Exception in thread "main" java.lang.IllegalStateException: 에러가 발생했습니다.
 at FileKt.main (File.kt:2) 

Exception in thread "main" kotlin.NotImplementedError: An operation is not implemented: 작성해야 할 부분
 at FileKt.main (File.kt:2) 

 

컬렉션 생성 함수

 

배열

 

fun <T> arrayOf(vararg elements: T): Array<T>

fun <T> emptyArray(): Array<T>

 

fun <T> arrayOfNulls(size: Int): Array<T?>

 

fun booleanArrayOf(vararg elements: Boolean): BooleanArray

fun byteArrayOf(vararg elements: Byte): ByteArray

fun charArrayOf(vararg elements: Char): CharArray

fun doubleArrayOf(vararg elements: Double): DoubleArray

fun floatArrayOf(vararg elements: Float): FloatArray

fun intArrayOf(vararg elements: Int): IntArray

fun longArrayOf(vararg elements: Long): LongArray

fun shortArrayOf(vararg elements: Short): ShortArray

 

val chars = charArrayOf('a', 'b', 'c', 'd', 'e')
val numbers = intArrayOf(1, 2, 3, 4, 5)

 

리스트

 

fun <T> listOf(vararg elements: T): List<T>

fun <T> listOf(element: T): List<T>

fun <T> listOf(): List<T>

 

fun <T: Any> listOfNotNull(vararg elements: T?): List<T>

funt <T: Any> listOfNotNull(element: T?): List<T>

 

출처 : 저서 커니의 코틀린 (요약, 정리), https://kotlinlang.org

반응형

'IT개발 > Kotlin' 카테고리의 다른 글

Kotlin design pattern  (0) 2020.01.13
Kotlin의 null 처리  (0) 2020.01.09
코루틴  (0) 2020.01.07

댓글