데이터 타입에 대한 이해
이 문서에서는 변수와 스코프 규칙에 대해 알아보았지만, 변수에 저장할 수 있는 다양한 데이터 타입에 대한 설명이 부족했습니다. 따라서 이 섹션에서는 다양한 데이터 타입과 그 용도를 설명합니다.
변수가 어떤 데이터 타입을 가지고 있는지 알아보려면 `typeof` 함수를 사용할 수 있습니다. 데이터 타입에 대해 간단히 설명하겠습니다. 변수를 생성하면 정보를 저장할 수 있으며, 함수를 호출할 때 반환된 정보를 저장할 수도 있습니다. 이때 정보는 여러 가지 형태를 갖습니다. 예를 들어 실수(real number) 또는 문자열(string)일 수 있습니다. 이러한 값의 종류를 데이터 타입이라고 하며, GameMaker 언어를 사용하면 다음과 같은 데이터 타입을 사용할 수 있습니다.
## 데이터 타입 종류
|데이터 타입|설명|예시|
|---|---|---|
|실수 (Real)|문자열이나 다른 데이터 타입이 아닌 모든 값.|124, 45639.566546456, -45.5|
|불리언 (Boolean)|참(true) 또는 거짓(false) 값을 가집니다.|true, false|
|문자열 (String)|따옴표("...")로 묶인 모든 텍스트.|"Hello, World!"|
|배열 (Array)|여러 값을 저장할 수 있는 특수 데이터 타입.|[1, 2, 3], ["a", "b", "c"]|
|구조체 (Struct)|모든 데이터 타입 변수를 포함하는 컨테이너 역할을 합니다.|`var myStruct = {x: 10, y: 20};`|
|메서드 변수 (Method Variable)|함수가 할당된 변수로, GML 함수를 사용하는 것처럼 사용합니다.|`var myFunc = some_function;`|
|64 비트 정수 (Int64)|64 비트 정수로, 정수가 필요한 곳에서 사용됩니다.|`var myInt64 = int64(12345);`|
|핸들 (Handle)|자원의 참조를 포함하며, 64 비트 정수 형태입니다.|`var myHandle = create_object();`|
|열거형 (Enum)|상수 값의 목록으로 제한된 데이터 타입을 생성합니다.|`enum Colors { Red, Green, Blue };`|
|정의되지 않음 (Undefined)|값이 없거나 올바른 값을 가리지 않을 때 사용됩니다.|`var val = undefined;`|
|NaN|"Not a Number"를 의미하며 계산할 수 없는 값을 나타냅니다.|`0/0` 또는 `sqrt(-1)`|
|무한대 (Infinity)|무한한 값을 나타내며 주로 0으로 나눌 때 발생합니다.|`1.0/0`|
|모든 값 (Any)|어떤 타입의 값도 허용되는 것을 의미합니다.|`function example(a:any) {}`|
## 추가 예제
### 실수 예제
```gml
var realNumber = 123.456;
if (realNumber > 100) {
show_debug_message("100보다 큽니다.");
}
불리언 예제
var isActive = true;
if (isActive) {
show_debug_message("활성화 상태입니다.");
}
문자열 예제
var greeting = "안녕하세요, ";
var name = "게임 개발자";
var message = greeting + name;
show_debug_message(message);
배열 예제
var myArray = [1, 2, 3, 4, 5];
show_debug_message(myArray[2]); // 3을 출력합니다.
구조체 예제
var player = {name: "홍길동", score: 100};
show_debug_message(player.name); // "홍길동"을 출력합니다.
결론
이 문서에서는 GameMaker에서 사용 가능한 다양한 데이터 타입에 대해 설명했습니다. 각 데이터 타입은 고유한 특성과 용도를 가지며, 필요에 따라 적절한 데이터 타입을 선택하여 사용해야 합니다. 이를 통해 오류를 줄이고 코드의 가독성을 높일 수 있습니다.
더 궁금한 사항이 있으면 GML 참조에서 확인해 주세요. ```