Manual
GML 산술 연산 결과와 데이터 타입
— 2 min read
이 문서에서는 **GML(게임 메이커 언어)**에서 다양한 데이터 타입으로 산술 연산을 수행했을 때의 결과를 보여줍니다. 각 표는 산술 연산의 왼쪽 항과 오른쪽 항을 기준으로 결과를 나타냅니다.
산술 연산 결과 표
덧셈 (+)
| Real | Bool | String | Int32 | Int64 | Ptr | undefined | Array |
|---|
| Real | Real | Real | String | Real | Real | Error | Error | Error |
| Bool | Real | Real | Error | Real | Real | Error | Error | Error |
| String | Error | Error | Error | Error | Error | Error | Error | Error |
| Int32 | Real | Real | String | Int32 | Int64 | Error | Error | Error |
| Int64 | Real | Real | String | Int64 | Int64 | Error | Error | Error |
| Ptr | Error | Error | Error | Error | Error | Error | Error | Error |
| undefined | Error | Error | Error | Error | Error | Error | Error | Error |
| Array | Error | Error | Error | Error | Error | Error | Error | Error |
뺄셈 (-)
| Real | Bool | String | Int32 | Int64 | Ptr | undefined | Array |
|---|
| Real | Real | Real | Error | Real | Real | Error | Error | Error |
| Bool | Real | Real | Error | Real | Real | Error | Error | Error |
| String | Error | Error | Error | Error | Error | Error | Error | Error |
| Int32 | Real | Real | Error | Int32 | Int64 | Error | Error | Error |
| Int64 | Real | Real | Error | Int64 | Int64 | Error | Error | Error |
| Ptr | Error | Error | Error | Error | Error | Error | Error | Error |
| undefined | Error | Error | Error | Error | Error | Error | Error | Error |
| Array | Error | Error | Error | Error | Error | Error | Error | Error |
곱셈 (*)
| Real | Bool | String | Int32 | Int64 | Ptr | undefined | Array |
|---|
| Real | Real | Real | String | Real | Real | Error | Error | Error |
| Bool | Real | Real | Error | Real | Real | Error | Error | Error |
| String | Error | Error | Error | Error | Error | Error | Error | Error |
| Int32 | Real | Real | String | Int32 | Int64 | Error | Error | Error |
| Int64 | Real | Real | String | Int64 | Int64 | Error | Error | Error |
| Ptr | Error | Error | Error | Error | Error | Error | Error | Error |
| undefined | Error | Error | Error | Error | Error | Error | Error | Error |
| Array | Error | Error | Error | Error | Error | Error | Error | Error |
나눗셈 (/)
| Real | Bool | String | Int32 | Int64 | Ptr | undefined | Array |
|---|
| Real | Real | Real | Error | Real | Real | Error | Error | Error |
| Bool | Real | Real | Error | Real | Real | Error | Error | Error |
| String | Error | Error | Error | Error | Error | Error | Error | Error |
| Int32 | Real | Real | Error | Int32 | Int64 | Error | Error | Error |
| Int64 | Real | Real | Error | Int64 | Int64 | Error | Error | Error |
| Ptr | Error | Error | Error | Error | Error | Error | Error | Error |
| undefined | Error | Error | Error | Error | Error | Error | Error | Error |
| Array | Error | Error | Error | Error | Error | Error | Error | Error |
비교 연산 결과
| NaN | undefined | infinity |
|---|
| NaN | false | false | false |
| undefined | false | true | false |
| infinity | false | false | true |
활용 예제
- 기본 데이터 타입 연산:
- 실수형과 정수형을 더할 때는 결과로 실수형을 얻습니다.
gml var result = 3.5 + 2; // result는 5.5 (Real) - Bool 타입과 실수형의 곱:
- Bool 타입을 1 또는 0으로 간주해 곱셈을 수행할 수 있습니다.
gml var result = true * 5; // result는 5 (Real) - 문자열과 수치형의 연산:
- 문자열과 수치형의 덧셈은 오류를 반환합니다.
gml var result = "Hello" + 3; // 오류 발생 - 나누기와 배열 사용:
- 배열과 숫자로 나누기를 할 경우 오류가 발생합니다.
gml var array = [1, 2, 3]; var result = array / 2; // 오류 발생 - NaN과 비교:
- NaN과 다른 값의 비교는 항상 false입니다.
gml var isEqual = (NaN == NaN); // isEqual은 false
이와 같이 다양한 데이터 타입을 사용한 산술 연산의 결과는 예상과 다를 수 있으므로 주의가 필요합니다.