Lua script
Programming 2014. 2. 11. 17:20 |Lua Script
1993년에 브라질에서 개발된 스크립트 언어로, 언어의 이름인 Lua는 포르투갈어로 '달'이라는 의미를 가지고 있습니다.
게임에서 유저들이 사용하기도 하며 대표적으로 게임 월드 오브 워크래프트에서 동적 유저 인터페이스를 지원하기 위해 사용하고 있습니다.
특징
1. 명백하고 간단한 문법
2. 작은 크기, 쉬운 구현
3. 좋은 데이터 묘사 기능
4. 알맞은 확장성
문법
- 주석
한줄주석 : --
다중주석
--[[ 로 시작하며
끝에 --]] 를 붙힘.
- 식별자
1. 영문자와 숫자, 밑줄(_) 로 구성함.
2. 숫자로 시작하면 안됨.
3. 영문자 대소문자를 구별함.
4. 예약어들은 식별자로 사용할 수 없음.
5. _Start 처럼 밑줄로 시작하여 영문 대문자가 오는 식별자의 지정은 피해야 함.
- 연산자
1. 산술연산자
+ : 덧셈
a = "5" + 5
print(a); -- 10 출력
- : 뺄셈
* : 곱셈
/ : 나눗셈
% : 나머지
^ : 제곱
= : 대입
2. 비교연산자
== : 같음
~= : 같지 않음
>= : 크거나 같음
> : 큼
<= : 작거나 같음
< : 작음
3. 논리연산자
and, or, not
- 변수
루아는 동적 타입 언어 (dynamically typed language) 이다.
동적 언어라는 것은 타입이 없다는 것을 의미한다. 아니, 없다기보다는... 타입 지정을 그때그때 특별히 할 필요가 없다.
그러므로 타이핑 시간도 감소되며 코드 가독성을 좋게 하는 효과가 있고 결국 생산성이 증가된다.
변수를 제일 처음 사용한 곳이 변수의 선언을 나타낸다. 즉 필요할 때 만들어서 사용하면 되며 미리 선언할 필요는 없다.
* 변수형
- nil : 변수에 어떤 값도 배정된 적이 없음을 가리킴
- boolean : true or false
- number : 숫자. (부동소수점 값)
num = 7
num = 0.7
num = 0x70
num = 7.65e8(765,000,000)
num = 7.65e-2(0.0765)
- string : 문자
루아의 문자열은 사용하기 쉽고 단순합니다.
str = "String"
관련 함수는 다음과 같은 것이 존재합니다.
string.char(n1,n2,...) : 주어진 수치 인수들을 아스키값으로 해석하고, 아스키값에 해당하는 문자로 하나의 문자열을 만들어줍니다.
string.format() : 문자열을 포매팅하는 함수로 여러 변수들의 값을 포함하는 문자열을 만들 때 유용합니다.
str = string.format("%s%s%d%s", "
string.len(string) : 문자열의 길이를 반환합니다.
str " 223"
print(string.len(str)) -- 3
string.sub(str, start, end) : 문자열의 일부분
string.tonumber() : string형을 number형으로 변환해줍니다.
str = "35"
num = tonumber(str)
print(num+5) -- 40
string.tostring() : number형을 string형으로 반환해줍니다.
num = 93
str = tostring(num)
print(type(str)) -- string
- function : 함수
- thread : 개별적인 스레드
- table : 인덱싱이 가능한 associative arrays(결합배열, 배열을 사용할 때 초기화, 확장 등을 할 필요가 없음)
* type(n) : 변수 n의 변수형을 반환한다.
a = "hello, world!"
print(type(a)) -- string 출력
- 내장함수
print("str") -- str 출력
기타링크
- Lua 5.2 Reference Manual 일어판
http://milkpot.sakura.ne.jp/lua/lua52_manual_ja.html
'Programming' 카테고리의 다른 글
DBMS (0) | 2015.02.27 |
---|---|
일반화 프로그래밍(Generic Programming) (0) | 2015.02.02 |
온라인 게임 처음부터 끝까지 동적 언어로 만들기 (Lua) (0) | 2014.02.11 |
트랜잭션, 롤백, 커밋 (0) | 2013.11.07 |
문자 인코딩 (0) | 2013.09.11 |