check(), require()함수 모두 인자로 받은 표현식이 참이 아닌 경우 예외를 발생시킨다.
예제 코드)
fun showMessage(isPrepared: Boolean, message: String) {
check(isPrepared)
require(message.length>10)
print(message)
}
예제 코드)
funr showMessage(isPrepared: Boolean, message: String){
if(!isPrepared){
error("Not prepared yet")
}
print(message)
}
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은 중복되지 않은 요소들로 구성된 자료구조이다.
setOf()함수를 사용하고 읽기 전용이다.
//대문자로 바꾸는
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) }
val numbers = 1..6
//1부터 시작하여 각 인자를 끝으로 하는 범위를 반환한다.
numbers.flatmap( number -> 1..number }
.forEach{ print("$it ") }
val fruits = listOf("apple","banana","kiwi")
fruits.filter { fruit -> fruit.length<=5 }
.forEach{ println(it) }
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()