map 메서드
Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 60번째.
고차 함수는 다른 함수를 인수로 받는 함수입니다. 배열에는 이러한 함수가 여러 개 있으며, map()이 첫 번째입니다.
map()은 배열의 모든 요소에 함수를 적용하고, 결과를 같은 순서로 담은 새 배열을 반환합니다:
func square(n):
return n * nvar numbers = [1, 2, 3, 4, 5]
var squares = numbers.map(square)
print(squares)[1, 4, 9, 16, 25]괄호 없이 함수 이름으로 함수를 전달하세요. map(square)는 함수를 전달하지만, map(square())는 함수를 즉시 호출하려고 합니다. 그런 다음 map()은 각 요소에 대해 함수를 한 번씩 호출합니다. 1은 1이 되고, 2는 4가 되고, 3은 9가 되는 식입니다.
간단한 계산에서는 람다를 사용하면 별도의 함수를 만들 필요가 없습니다:
var squares = numbers.map(func(n): return n * n)새 배열은 원본과 크기가 같으며, numbers 자체는 바뀌지 않습니다. 결과는 요소와 다른 타입일 수 있습니다:
var words = ["apple", "kiwi", "banana"]
print(words.map(func(w): return w.length()))[5, 4, 6]map()은 Array[int]과 같은 형식 지정 배열에서 호출하더라도 일반 Array를 반환합니다. 이 결과를 Array[int] 변수에 저장하면 오류로 인해 프로그램이 중단되므로, 형식이 지정되지 않은 변수나 Array에 저장하세요.
split()은 map()이 없는 PackedStringArray를 반환합니다. 먼저 Array로 변환하세요: Array("1,2,3".split(",")).map(func(s): return int(s))는 [1, 2, 3]을 반환합니다.
챌린지
쉬움문자열 배열인 strings를 받아 모든 문자열이 대문자로 변환된 새 배열을 반환하는 convert_to_uppercase라는 함수를 작성하세요.
루프 없이 람다와 함께 map()을 사용하세요. 예를 들어, convert_to_uppercase(["hello", "world"])는 ["HELLO", "WORLD"]를 반환합니다.
테스트에서 convert_to_uppercase()를 직접 호출합니다. 함수를 호출하지 말고 아무것도 출력하지 마세요.
직접 해보기
func convert_to_uppercase(strings: Array[String]):
# 여기에 코드를 작성하세요
pass
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러