배열 패턴
Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 8번째.
배열 패턴은 배열 리터럴처럼 작성합니다. 크기가 같고 각 요소가 하나씩 일치하는 배열과 일치합니다. 패턴의 각 요소는 리터럴, _ 또는 바인딩일 수 있습니다.
var point := [0, 7]
match point:
[0, 0]:
print("Origin")
[0, var y]:
print("On the y-axis at ", y)
[var x, var y]:
print("Point ", x, ", ", y)On the y-axis at 7크기는 같아야 합니다. [var x, var y]는 [1, 2, 3]과 일치하지 않습니다. 추가 요소를 개수에 상관없이 허용하려면(0개 포함) ..를 마지막 요소로 넣고, 빈 배열은 []로 씁니다.
var cmd := ["give", "sword", "Ana"]
match cmd:
[]:
print("Nothing typed")
["give", var item, ..]:
print("Giving ", item)Giving sword가드(guard)는 배열 패턴에서도 작동합니다. [var a, var b] when a == b:는 서로 같은 두 요소와 일치합니다.
배열 패턴은 Array 타입만 일치시킵니다. split()이 반환하는 PackedStringArray는 이 패턴과 일치하지 않습니다. 결과를 Array로 선언된 변수에 저장하면 변환됩니다:
var words: Array = "go north".split(" ")
match words:
["go", var dir]:
print("Heading ", dir)Heading north챌린지
쉬움프로그램은 x,y 형식으로 작성된 점을 읽고, 이미 작성된 대로 이를 두 정수로 이루어진 point 배열에 저장합니다. 배열 패턴을 사용하는 match문으로 점의 위치를 출력하세요. 맞는 첫 번째 규칙을 사용합니다.
- 두 값 모두
0:Origin x가0:On the y-axis at y=뒤에y를 출력y가0:On the x-axis at x=뒤에x를 출력x와y가 같음:On the diagonal at뒤에 해당 값을 출력- 그 외의 경우: 두 값을 사용해
Point at (x, y)를 출력
입력이 0,5인 경우 출력은 다음과 같습니다.
On the y-axis at y=5입력이 2,7인 경우 출력은 다음과 같습니다.
Point at (2, 7)직접 해보기
extends Node
func _ready():
var parts := OS.read_string_from_stdin().split(",")
var point := [int(parts[0]), int(parts[1])]
# point를 배열 패턴과 비교하여 일치 여부 확인
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러