자료형(Class Type)

변수의 자료형

변수에는 자료형이라는 것이 있습니다. 이는 펑션에서의 인수, 반환값(고급 펑션 문서에서 다룸)에도 동일하게 적용되는 개념인데요.

자료형을 통해서 변수의 값의 종류나 펑션이 요구하는 값의 종류를 구별할 수 있습니다.

예를 들어 지금까지 펑션에서 써왔던 '(따옴표) 가 붙어있는 메시지들은 이 메시지들이 문자열 자료형(String) 이라는 것을 나타내기 위한 표시입니다.

이 문단에서는 변수의 기본적인 자료형들을 간단히 알아봅니다.

문자열

코드에서 가장 많이 쓰는 자료형입니다. 문자로 이루어지며, '(따옴표) 안에 있는 경우 무조건 문자열이라고 간주합니다. 또한 펑션과 문자열이 붙어있는 경우(펑션()'문자열' 같이) 펑션의 반환값 또한 문자열이 됩니다.

그리고 클로저를 제외한 모든 변수는 문자열로 동일하게 변환할 수 있습니다.(클로저는 문자열로 완벽하게 변환하진 못합니다.)

정수(int)

여러분이 잘 아는 정수(숫자) 입니다.

코드에서 쓸 때에는 따옴표 없이 그냥 숫자만 있을 경우 정수 자료형으로 간주되지만, 문자열이 숫자로만 이루어져 있을 때(따옴표 안에 숫자만 있을 때)에도 정수 자료형처럼 쓰일 수 있습니다.

소수(double)

정수를 더 쪼갠 형태입니다. 여기서 소수란 1.1 처럼 소숫점이 있는 수들을 말합니다.

정수처럼 쓰지만 뒤에 소숫점과 숫자가 붙어있다는 것이 다릅니다.

배열(Array)

어떠한 값들을 나열하여 묶은 것을 배열이라고 합니다. array() 펑션으로 생성할 수 있으며, 문자열로 변환되면 {값1, 값2, 값3} 처럼 표시됩니다. 자세한 내용은 배열 파트에서 다룹니다.

boolean

true(참), false(거짓) 으로 이루어져 있으며,

값이 true 일 경우 주어진 조건 혹은 주어진 작업의 결과가 참이라는 뜻이고,

값이 false 일 경우 그 반대입니다.

null

null 은 하나의 자료형으로 분류되지만 가지고 있는 값은 null 단 하나입니다. 자료형 자체의 값이 없다는 뜻이며, 대개 오류가 날 때 이 null 값을 반환하는 경우가 많습니다.

클로저(Closure)

실행할 수 있는 코드가 담긴 객체입니다. 자세한 내용은 클로저 파트에서 다룹니다.

하위 자료형

자료형은 대개 위의 종류들로 다 표현될 수 있지만(바이트배열 등 언급되지 않은 자료형도 있음), API 문서 상으로는

자료형은 같은데에도 불구하고 그 값의 종류(자료형과 상관 없이) 에 따라 표기를 다르게 한 경우도 있습니다.

이는 다양한 표기가 있지만 그 표기를 보고 자료형을 유추하기가 어렵지 않으므로 해당 값의 기능을 좀 더 쉽게 표기하기 위해 사용하였다고 생각하시면 됩니다.

예: 엔디티 ID(int 자료형) -> 엔디티의 식별 ID 이며, 정수로 표현되지만 문서상으론 엔디티 ID 라고 표기되어 있음.

자료형의 식별 및 변환

커맨드헬퍼는 자료형을 엄격하게 구별하는 프로그래밍 언어라고 볼 순 없습니다. 하지만 특정한 자료형이 특정한 상황에 필요할 때가 있기 때문에, 자료형의 식별 및 변환을 할 수 있는 펑션들이 있습니다.

자료형의 식별

typeof()

typeof() 는 자료형을 식별할 때 사용하는 펑션입니다.

인수로 자료형을 알고 싶은 값을 입력하면, 자료형의 이름이 문자열으로 반환됩니다.

예제.

/typeoftest = msg(typeof('문자열')','typeof(1)','typeof(1.0)','typeof(array(1,2,3))

결과: 플레이어에게 "string , int , double , array" 라는 메시지가 전송됩니다.

인수의 자료형을 인수의 값과 상관없이 알려주는 것을 알 수 있습니다.

is_자료형()

is_자료형() 은 하나의 펑션이 아닌 자료형을 구별할 수 있는 펑션들의 총칭을 의미합니다.

자료형 별로 이것이 해당 자료형인지 알려주는 펑션이 바로 이 펑션이며, 결과로 boolean 을 반환합니다. (주어진 값이 해당 자료형과 일치하면 참(true), 일치하지 않으면 거짓(false))

예제.

/isstring = msg(is_string('문자열'))

결과: 플레이어에게 "true" 라는 메시지가 전송됩니다.

자료형의 변환

자료형의 변환하는 방법은 여러가지가 있지만 여기선 기본적인 방법들을 알아보도록 합니다.

자료형()

자료형()is_자료형() 처럼 자료형을 변환할 수 있는 펑션들의 총칭을 의미합니다. 자료형() 펑션에 변환하고 싶은 값을 넣으면 해당하는 자료형으로 변환되지만, 자료형의 변환이 불가능한 경우는 변환되지 않습니다.

예제 1.

/tostring = msg(typeof(string(1)))

결과: 플레이어에게 "string" 이라는 메시지가 전송됩니다.

원래 자료형이 int 인 1 이라는 값을 string() 펑션에 넣어 변환시켰더니 string 이 되었습니다.

예제 2.

/toint = msg(typeof(int('문자열')))

결과: 정수가 아닌 문자열은 변환할 수 없다는 예외가 발생합니다.

문자열은 숫자로만 이루어져 있지 않을 경우 정수로 변환될 수 없기 때문에 오류가 발생합니다.

다음 강좌

이제 자료형의 기본을 배웠으니 펑션의 더 자세한 사용법을 알 차례입니다.

고급 펑션