안전한 맵 조회
Coddy Kotlin 여정의 논리와 흐름 섹션에 포함된 레슨. 63개 중 2번째.
map[key]은 키가 없을 수 있기 때문에 null 허용 값을 반환합니다. 대체 값을 지정하려면 Elvis 연산자를 사용하세요. 저장된 0은 누락된 값과 다릅니다. 읽기 전용 액세스가 완전한 불변성을 의미하는 것은 아닙니다.
main 내부:
val stock = mapOf("pen" to 0)
println(stock["book"] ?: -1)book 키가 없으므로 null 결과가 대체값을 선택합니다.
누락된 키는 null을 생성하며, Elvis 대체값은 null에만 사용됩니다.
챌린지
중급stock: Map<String, Int> 및 key: String 매개변수를 사용하여 lookupStock을 완성하세요. 요청된 키에 해당하는 재고를 반환하고, 키가 없으면 -1을 반환하세요. 재고 값은 음이 아닌 정수입니다.
위에서 더 엄격한 범위가 지정되지 않은 경우, 각 수준의 컬렉션에는 최대 100개의 요소가 포함되며, 정수 인수와 정수 컬렉션 값은 -1000에서 1000 사이입니다. 파싱을 위해 제공되는 텍스트에는 설명된 대로 유효하지 않거나 범위를 벗어난 표현이 포함될 수 있습니다.
Int 유형의 값을 반환하세요. 제공된 입력/출력 코드를 그대로 유지하세요. 이 코드는 스칼라 인수를 한 줄에 하나씩 읽습니다. 리스트는 개수에 이어 요소들이 나오는 형식이며, 맵은 항목 개수에 이어 각 키와 값이 나오는 형식입니다. 중첩 리스트에서는 각 행마다 개수와 요소 형식을 반복합니다. 제공된 main은 반환값 뒤에 줄바꿈 하나를 출력합니다. 리스트는 Kotlin의 표준 대괄호 형식을 사용하며, 추가 레이블은 출력하지 마세요.
직접 해보기
fun lookupStock(stock: Map<String, Int>, key: String): Int {
// 여기에 솔루션을 작성하세요.
return 0
}
fun main() {
val stockCount = readln().toInt()
val stock = mutableMapOf<String, Int>()
for (i0 in 0 until stockCount) {
val stockKey = readln()
val stockValue = readln().toInt()
stock[stockKey] = stockValue
}
val key = readLine().orEmpty()
println(lookupStock(stock, key))
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: Kotlin 플레이그라운드