Kotlin standard library

park paul·2021년 11월 20일
0
post-custom-banner

표준라이브러리 사용하기

1. 조건 확인 함수

check, require

check(), require()함수 모두 인자로 받은 표현식이 참이 아닌 경우 예외를 발생시킨다.

  • fun check(value: Boolean)
  • fun check(value: Boolean, lazyMessage: () -> Any)
  • fun require(value: Boolean)
  • fun require(value: Boolean, lazyMessage: () -> Any)
예제 코드)
fun showMessage(isPrepared: Boolean, message: String) {
	check(isPrepared)
    require(message.length>10)
    
    print(message)
}
  • fun error(message: String) : Nothing
예제 코드)
funr showMessage(isPrepared: Boolean, message: String){
	if(!isPrepared){
    	error("Not prepared yet")
    }
    print(message)
}

2. 컬렉션 생성 함수

배열

arrayOf()함수를 사용한다. 빈 배열은 emptyArrayOf()를 사용한다.
null값이 포함되는 배열을 만들고 싶을 때는 arrayOfNulls()를 쓰고 이후에 따로 채울 수 있다.

val fruits=arrayOf("apple","banana","kiwi")
val emptyStringArray = emptyArray<String>()
val nullStoreableArray = arrayOfNulls<String>(3)
...

리스트

읽기 전용이다. listOf()를 사용한다.

fun<T>listOf:List<T>

listOfNotNull() 사용하기

val listOfCoutries = listOfNotNull(null)
val listOfCities = listOfNotNull("Seoul",null,"Tokyo",null)

포함하는 요소를 읽을 수만 있고, 수정할 수 없는 읽기 전용 map은 mapOf()함수를 사용한다.

예제 코드)
//pair를 직접 사용하는 예
val cities1 = mapOf(Pair("SEO","Seoul"), Pair("TOK","Tokyo"))

// 표준 라이브러리 함수 to를 사용해 pair를 더 직관적으로 사용한 예
val cities2 = mapOf("SEO" to "Seoul", "TOK" to "Tokyo")

집합(set)

set은 중복되지 않은 요소들로 구성된 자료구조이다.
setOf()함수를 사용하고 읽기 전용이다.

3. 스트림 함수

변환

  • map()함수
    map()함수는 컬렉션 내 인자를 다른 값 혹은 타입으로 변환할 때 사용한다.
//대문자로 바꾸는
val fruits = listOf("apple","banana","kiwi")

fruits.map{ fruit -> fruit.toUpperCase()}
		.forEach {println(it) }
        
// 문자 수가 5이하면 그대로 출력하고 아닐 때 null을 반환하는
fruits.mapNotNull{ fruit -> if(fruit.length <=5) city else null }
		.forEach {println(it) }
        
  • flatMap()
    하나의 인자에서 여러 개의 인자로 매핑이 필요할 때 쓴다.
val numbers = 1..6
//1부터 시작하여 각 인자를 끝으로 하는 범위를 반환한다.
numbers.flatmap( number -> 1..number }
		.forEach{ print("$it ") }
  • filter()
    조건에 일치하는 인자만 걸러준다.
val fruits = listOf("apple","banana","kiwi")
fruits.filter { fruit -> fruit.length<=5 }
		.forEach{ println(it) }

조합 및 합계

  • zip()
    두 컬렉션 내의 자료들을 조합하여 새로운 자료를 만들 때 사용한다.
val fruits = listOf("apple","banana","kiwi")
val snacks = listOf('chip","bar","chew")

fruis.zip(snacks)
		.forEach { pair -> println("${pair.first}:${pair.second}")}
  • count()
    조건에 맞는 자료의 개수를 반환한다.

  • reduce()
    컬렉션 내 자료들을 모두 합쳐 하나의 값으로 만들어준다.

기타

  • any()
    컬렉션 내의 자료가 하나라도 있으면 true, 아니면 false를 반환한다.

  • let()
    이 함수를 호출하는 객체를 이어지는 함수형 인자 block의 인자로 전달하며 block 함수의 결과를 반환한다.

  • apply()

  • with()

  • run()

profile
Innovation is mine
post-custom-banner

0개의 댓글