Lua 01. 문법
Lua 기초 문법 중 식별자 (Identifier) 에 대해 알아보겠습니다.
Identifier 한글로 식별자라고 번역하기도 하는 그것은 프로그래밍 언어에서 사용하는
단어들을 의미합니다.
< i, like, playing, video, games > 뭐 이런 거를 말하는데요.
변수/함수/클래스/모듈/키워드 등등의 이름으로
사용할 수 있는 단어들입니다. 물론 사용자는 키워드나 예약된 단어는 사용할 수 없습니다만
모조리 식별자 입니다.
1. 기초 규칙
다른 프로그래밍 언어와 비슷한 규칙으로 되어 있습니다.
1) 문자, 숫자, _ (Underscore) 로 구성
2) 첫 문자는 숫자가 될 수 없음
3) keyword를 포함한 예약된 단어와 중복 불능
4) 대소문자 구별함
5) 내부 전역 변수명 사용 금지
2. 조건 1 - 문자
Lua 에서 식별자로 사용 가능한 문자는 현재 시스템의 locale에서 표현할 수 있는 문자입니다.
locale에 대해 간단히 설명하자면
현재 한글 Windows 를 사용한다면 당연히 Korean 이 기본 locale로 설정되며,
Linux 에서 $LANG 을 en_US 등으로 설명했다면 English 가 되는 것입니다.
그래서 Lua 를 한글 Windows 에서 실행한다면 한글로 변수나 함수 이름을 사용할 수 있습니다.
단, Lua는 플랫폼 독립적이며 다른 언어와의 통신이 되야하고 세계 어디에서도 사용할 수 있는 프로그램을 작성하는데 사용할 것이므로 되도록 locale 의 영향을 받는 한글/일어/중문 등은 사용하지 않는 것이 좋습니다.
강좌에서 모든 예제는 a ~ z, A ~ Z 의 52 개 알파벳 만을 사용합니다.
Lua는 대소문자를 구별합니다.
C/C++ 과 마찬가지로 대문자와 소문자는 다른 문자로 인식합니다. 이 또한 locale 에 따릅니다.
locale에 따라 대소문자 규칙이 달라집니다. 따라서 이러한 이유 때문에도 알파벳만을 사용하는 것을 권장합니다.
아래 단어는 모두 다른 식별자 입니다.
where
Where
WHERE
3. 조건 2 - 숫자
숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 를 말합니다.
숫자를 문자의 일부로 해석하지 않는 것은 일반 문자와 숫자 사이에 차이점 때문입니다.
첫 문자는 숫자가 될 수 없음
바로 이 조건 때문인데요.
32Bit 와 같은 단어는 식별자가 될 수 없다 이죠.
이는 C/C++ 을 포함한 대부분의 언어가 지정하는 규약입니다.
4. 조건 3 - _ (Underscore)
밑줄이라고 합니다.
_ 는 문자의 하나로 특별한 제약은 없습니다.
식별자 앞,뒤,중간 어디에도 사용할 수 있습니다.
심지어 _ 하나로도 식별자를 만들 수 있습니다. 이는 추후 강좌에서 예제와 함께 설명하겠습니다.
단, _VERSION 과 같이 Lua 내부에서 사용하는 전역 식별자들이 _로 시작하여 모두 대문자로 이루어져있어 이러한 식별자들과 구분하는 것이 좋습니다.
5. 조건 4 - Keyword
모든 프로그래밍 언어가 그렇듯이 Lua 또한 keyword는 식별자로 사용할 수 없습니다.
and break do else elseif end
false for function if in local
nil not or repeat return then
true until while
추가로 모든 식별자에는 연산자와 같은 문자를 사용할 수 없습니다.
+ - * / % ^ #
== ~= <= >= < > =
( ) { } [ ] ;
: , . .. ...
C/C++ 에서 일반적으로 사용하는 identifier 규칙 그대로인 듯 합니다.
단지 _UPPERCASE 와 같은 _로 시작하고 대문자로 이루어진 많은 전역변수가 존재하여
이를 소스코드에서 사용할 때에 문법 오류 처리가 안된다는 것이 조금은 다르군요.
C/C++ 에서는 __FILE__ 과 같은 단어는 실행까지 못 가고 컴파일 타임에 오류를 검출할 수 있는데
Lua 는 이러한 부분도 모두 전역 변수이므로 자칫 잘못하면 원래 전역 변수 값을 덮어쓰는
무서운 결과를 초래합니다. 이는 실행 시간에도 정상 작동 하는 것 처럼 보이다 종국에
문제를 일으킬 가능성이 높아 아주 위험합니다.
_ 로 시작하는 단어만 주의한다면 별다른 어려움은 없겠습니다.
Ex.
1. 상수는 대문자와 밑줄만 사용한다 MY_CONSTANT
2. 변수는 소문자로 시작한다. myVariable
3. 전연 변수는 소문자 g로 시작한다. gMyGlobal
4. 함수는 대문자로 시작한다. MyFunction()
5. 지역변수는 local 키워드 사용 local myValue
< Tip - 지역변수 설정시 초기값을 주지 않으면 nil값을 가지게 된다. >
이것으로 이번 강좌를 마칩니다.
'LUA' 카테고리의 다른 글
Lua 03. math (3) | 2012.03.05 |
---|---|
Lua 02. 함수 (1) | 2012.03.05 |
Luci Reference: Templates (3) | 2012.02.17 |
LUA IDE 환경 (4) | 2012.02.16 |
루아 에디트플러스에서 실행 (1) | 2012.02.16 |