루아 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
75번째 줄: 75번째 줄:
  
 
===자료형===
 
===자료형===
:{|class=wikitable width=1000
+
:{|class=wikitable width=800
 
|+<ref name="연산자"></ref>
 
|+<ref name="연산자"></ref>
 
!align=center|자료형
 
!align=center|자료형
107번째 줄: 107번째 줄:
 
|-
 
|-
 
|align=center|string
 
|align=center|string
|align=center|"또는 ' 으로 감싼다. 긴 문자열은 [[...]]을 사용한다. string은 편집이 되지 않으며<br> 오로지 새로운 문자열을 생성한다.  string은 보조 라이브러리를 가지고 있다.
+
|align=center|"또는 ' 으로 감싼다. 긴 문자열은 [[...]]을 사용하다. string은 편집이 되지 않으며 오로지 새로운 문자열을 생성한다.  string은 보조 라이브러리를 가지고 있다.
 
|align=left|
 
|align=left|
 
str = "white"
 
str = "white"
133번째 줄: 133번째 줄:
 
|-
 
|-
 
|align=center|userdata
 
|align=center|userdata
|align=center|루아에서 배열을 표시하는 방법으로 루아에서<br> 정의되지 않은 로우 메모리를 생성한다.
+
|align=center|루아에서 배열을 표시하는 방법으로 루아에서 정의되지 않은 로우 메모리를 생성한다.
 
|align=left|
 
|align=left|
 
void *lua_newuserdata (lua_State *L, size_t size)를 사용한다.<br>
 
void *lua_newuserdata (lua_State *L, size_t size)를 사용한다.<br>
146번째 줄: 146번째 줄:
 
|-
 
|-
 
|align=center|table
 
|align=center|table
|align=center|루아의 테이블은 복합 자료형이면서도 중요한 역할을 한다. 키 밸류가 아닌 배열이나<br> 객체 프로그래밍을 할 때 필요하기 때문이다. 전체적으로 {}로 감싸며 key는 []로<br> 감싼 형태이다. 배열도 테이블이다. 키 밸류 형식이 아닌 요소가 한 줄로 배치된 모습이다. 배열의 처음 시작 인덱스는 1부터 시작하며 0 인덱스를 사용하려면<br> 사용자가 직접 만들어 주어야 한다.
+
|align=center|루아의 테이블은 복합 자료형이면서도 중요한 역할을 한다. 키 밸류가 아닌 배열이나 객체 프로그래밍을 할 때 필요하기 때문이다. 전체적으로 {}로 감싸며 key는 []로 감싼 형태이다. 배열도 테이블이다. 키 밸류 형식이 아닌 요소가 한 줄로 배치된 모습이다. 배열의 처음 시작 인덱스는 1부터 시작하며 0 인덱스를 사용하려면 사용자가 직접 만들어 주어야 한다.
 
|align=left|
 
|align=left|
 
COLOR = {Red = "rgb(255,0,0)",Green = "rgb(0,255,0)",Yellow = "rgb(0,0,255)"}<br>
 
COLOR = {Red = "rgb(255,0,0)",Green = "rgb(0,255,0)",Yellow = "rgb(0,0,255)"}<br>
157번째 줄: 157번째 줄:
 
|}
 
|}
  
;우선순위
+
====우선순위====
*'''^''' : 오른쪽 우선 연산자
+
연산자 : 우선순위를 나타낸 거다.
* '''-, not, #''' : -는 단항연산자를 의미
+
*'''^''' : 오른쪽 우선으로 하는 연산자
* '''*, /, %''' : -는 이항연산자를 의미
+
* '''-, not, #''' :-’는 단항연산자(부호)를 의미한다.
*'''..''' : 오른쪽 우선 연산자<ref name="연산자"></ref>
+
* '''*, /, %''' : -’는 이항연산자(빼기 연산)를 의미한다.
 +
*'''+, -, .., >, <, >=, <=, ==, ~=, and, or''' : 오른쪽 우선으로 하는 연산자이다.<ref name="연산자"></ref>
  
 
===제어문===
 
===제어문===
*'''[[if]]''' : 조건부 실행을 위한 if문의 기본 구조는 "if 조건 then 실행문 end"의 구조이다.
+
*'''[[if]]''' : 조건부 실행을 위한 if 문은 기본구조는 "if 조건 then 실행문 end"의 구조이다.
*'''[[switch]]''' : 루아 스크립트에는 switch 문이 없음으로 switch문 대신에 연속 비교문을 쓴다.
+
*'''[[switch]]''' : 루아 스크립트에는 switch 문이 없음으로 switch 문 대신에 연속 비교문을 쓴다.
*'''[[While]]''' : 조건이 참이면 무한 반복을 하는 while문은 C나 C++처럼 먼저 조건을 검사하고 조건이 참이면 do에서 end까지의 실행문을 실행한다. 조건이 거짓이 되거나 break 문에의 탈출할 수 있다.
+
*'''[[While]]''' : 조건이 참이면 무한 반복을 하는 while 문은 C나 C++처럼 먼저 조건을 검사하고 조건이 참이면 do에서 end까지의 실행문을 실행한다. 조건이 거짓이 되거나 break 문에의 탈출할 수 있다.
*'''[[repeat]]''', '''[[until]]''' : 조건이 참이 될 때까지 반복해서 실행하는 반복문은 반복에서 until까지 조건이 거짓이면 무한 반복 실행한다. while이나 for문과는 다르게 반복에서 until까지 무조건 한 번은 실행한다. C나 C++에서 "두 실행문 While(조건)"과 유사하다. 조건이 참이 되거나 break문에 의해 탈출할 수 있다.
+
*'''[[repeat]]''', '''until''' : 조건이 참이 될 때까지 반복해서 실행하는 반복문은 반복에서 until까지 조건이 거짓이면 무한 반복 실행한다. 와일 이나 포문과는 다르게 반복에서 until까지 무조건 한번은 실행한다. C나 C++에서 "두 실행문 While(조건)"과 유사하다. 조건이 참이 되거나 break 문에 의해 탈출할 수 있다.
*'''[[for]]''' : for문은 수치 for문과 일반 for문의 두 가지 사용 방법으로 사용한다. 수치 for문은 시작 조건에서 종료 조건이 될 때까지 step만큼씩 더하면서 do에서 end까지 실행한다. 제어변수는 반복문 안에서만 사용 가능하며 반복문을 벗어나면 인식되지 않는다. break에 의해 탈출할 수 있다. 일반 for문은 반복자함수에서 반환된 모든 값을 실행한다. 배열의 값을 모두 실행하기 위해서 반복자 함수 ipairs가 제공되고 반복될 때마다 색인과 값을 얻는다. "for i, v in ipairs(a) do 실행문 end"에서 a는 배열 이름 이고 i는 색인, v는 값이다.
+
*'''[[for]]''' : 포문은 수치 포문과 일반 포문의 두 가지 사용 방법으로 사용하며 수치 포문은 시작조건에서 종료 조건이 될 때까지 step 만큼씩 더하면서 do에서 end까지 실행한다. 제어변수는 반복문 안에서만 사용 가능하며 반복문을 벗어나면 인식되지 않는다. break에 의해 탈출 할 수 있다. 일반 포문은 반복자함수에서 반환된 모든 값을 실행한다. 배열의 값을 모두 실행하기 위해서 반복자 함수 ipairs 가 제공되고 반복될 때마다 색인과 값을 얻는다. "for i, v in ipairs(a) do 실행문 end"에서 a는 배열 이름 이고 i는 색인, v는 값이다.
 
*'''[[break]]''' : while, for, 반복문을 탈출하는 데 사용한다.
 
*'''[[break]]''' : while, for, 반복문을 탈출하는 데 사용한다.
 
*'''[[return]]''' : 값을 되돌리거나 함수를 종료할 때 사용한다.<ref name="연산자"></ref>
 
*'''[[return]]''' : 값을 되돌리거나 함수를 종료할 때 사용한다.<ref name="연산자"></ref>
  
=== 변수 ===
+
===정의===
루아는 [[변수]]를 미리 선언하지 않고도 사용할 수 있다. 변수를 선언해도 실제로 사용하는 부분에서 할당된다. 따라서 변수의 형식을 지정할 필요가 없다. 루아에서 자체적으로 지정하기 때문에 변수의 형식을 지정하고 싶어도 불가능하다. 변수와 변수의 형식에 관리에 유의해야 한다. 기본적으로 모든 변수는 본질적으로 전역 변수이다. 이는 스크립트 전체에서 접근할 수 있으며 끝날 때까지 유지된다. 가능한 곳에서는 항상 지역 변수를 사용하는 것이 좋다. 이때 local 키워드를 이용하여 지역 변수 선언할 수 있다.<ref name="정의">  
+
변수는 변하는 값을 말하며 루아에서는 다음과 같이 사용한다.
 +
 
 +
====설명====
 +
*변수를 미리 선언하지 않고도 사용할 수 있다. (변수 선언해도 실제로 사용하는 부분에서 할당)
 +
*변수의 형식을 지정할 필요가 없다. (변수의 형식 지정 불가능, 루아가 알아서 지정)
 +
*변수와 변수의 형식에 관리에 유의해야 한다.<ref name="정의">  
 
악마, 〈[https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=side1024&logNo=100102380482 Lua - 03. 변수(Variables)]〉, 《네이버 블로그》, 2010-03-24 </ref>
 
악마, 〈[https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=side1024&logNo=100102380482 Lua - 03. 변수(Variables)]〉, 《네이버 블로그》, 2010-03-24 </ref>
 +
 +
====전역====
 +
*기본적으로 모든 루아 변수는 본질적으로 전역 변수 : 스크립트 전체에서 접근할 수 있고 끝날 때까지 유지한다.<ref name="정의"></ref>
 +
 +
====지역====
 +
*가능한 곳에서는 항상 지역 변수를 사용한다. : 로컬(local) 키워드를 이용하여 지역 변수를 선언한다.<ref name="정의"></ref>
  
 
{{각주}}
 
{{각주}}

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)