함수 전달하기
Coddy Kotlin 여정의 논리와 흐름 섹션에 포함된 레슨. 63개 중 28번째.
고차 함수는 함수 값을 인수로 받거나 함수 값을 반환합니다. 함수 타입으로 함수 매개변수를 선언한 다음, 헬퍼 함수 내부에서 이를 호출하세요. 마지막 인수가 람다인 경우 Kotlin에서는 호출 괄호 뒤에 중괄호를 배치할 수 있습니다.
fun applyTwice(n: Int, operation: (Int) -> Int): Int {
return operation(operation(n))
}main 내부에서:
println(applyTwice(2) { it + 3 })첫 번째 호출은 2를 5로 바꾸고, 두 번째 호출은 5를 8로 바꿉니다.
함수 매개변수는 중간 결과와 함께 반복적으로 호출될 수 있습니다.
챌린지
중급value: Int 매개변수를 사용하여 twiceDouble을 완성하세요. 제공된 applyTwice 헬퍼와 두 배로 만드는 람다를 사용하세요. 두 배 연산을 두 번 적용한 후 그 결과를 반환하세요.
위에 더 엄격한 범위가 명시되어 있지 않다면, 컬렉션은 각 수준에서 최대 100개의 요소를 포함하며 정수 인수와 정수 컬렉션 값은 -1000에서 1000 사이입니다. 파싱을 위해 제공되는 텍스트에는 설명된 것처럼 유효하지 않거나 범위를 벗어난 표현이 포함될 수 있습니다.
Int 타입의 값을 반환하세요. 제공된 입력/출력 코드를 유지하세요. 이 코드는 스칼라 인수를 한 줄에 하나씩 읽습니다. 리스트는 개수와 그 뒤에 오는 요소로 시작하고, 맵은 항목 개수와 그 뒤에 각 키와 값이 이어지는 형식으로 시작합니다. 중첩 리스트에서는 각 행에 대해 개수와 요소 형식을 반복합니다. 제공된 main은 반환값을 출력한 다음 줄바꿈 하나를 출력합니다. 리스트는 Kotlin의 표준 대괄호 형식을 사용하며, 추가 레이블은 출력하지 마세요.
직접 해보기
fun applyTwice(n: Int, operation: (Int) -> Int): Int {
return operation(operation(n))
}
fun twiceDouble(value: Int): Int {
// 여기에 솔루션을 작성하세요.
return 0
}
fun main() {
val value = readln().toInt()
println(twiceDouble(value))
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: Kotlin 플레이그라운드