로그인하고 있지 않습니다. 편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!=== 자료형 === Lua의 자료형은 Javascript의 null 같이 아무것도 없다는 뜻을 가진 '''nil''', 참/거짓을 나타내는 '''boolean'''(true, false 키워드를 사용합니다.), 숫자형 타입('''number'''), 문자열('''string'''), 테이블('''table'''), 함수('''function'''), 스레드('''thread'''), 그리고 C언어를 활용해서 정의한 사용자 정의 자료형이 있습니다. 사용자 정의 자료형이나 스레드는 이해하는데 조금 난이도가 있는 만큼 여기서는 설명하지 않겠습니다. 우선 Lua는 '''nil'''이라는 키워드를 이용해 "아무것도 없음"을 정의합니다. 자바스크립트의 null, PHP의 NULL이나 파이썬의 None, C언어나 Java의 void와 유사한 역할을 하는 거죠. <code>x=nil</code>이라고 표시하면 변수 x는 아무것도 없는 상태라는 것을 의미하죠. print(x)를 하면 nil이 출력되며, nil은 연산에서도 사용할 수 없습니다. Lua는 파이썬에서 변수를 지워주는 키워드인 del 같은 키워드가 없기에 특정 변수를 지울 때는 nil값을 배정하는 식으로 변수를 지웁니다. 또 Lua에는 참/거짓을 의미하는 키워드인 true, false가 있습니다. 참과 거짓의 형태로 나오는 것을 '''boolean'''(불리언)이라고 부르는데요. 예를 들면 비교연산자를 이용한 연산 <code>a==3</code>는 a가 3이면 참, 3이 아니면 거짓이 되는 식이지요. Lua는 C언어와는 달리 둘 다 맞음을 의미하는 and 연산자는 &&으로 표현하지 않고 그냥 알파벳으로 and, or 연산자는 or, not 연산자는 not으로 표현합니다. 바로 이런 식으로요. <syntaxhighlight lang="lua"> if x>3 and x<10 then print(x) end </syntaxhighlight> Lua는 대부분의 프로그래밍 언어와는 다르게 5.2버전 이전에는 정수형과 부동소숫점 형태를 구별하지 않았습니다. 내부적으로는 부동소숫점 형태로 처리했다가... 5.3버전부터는 내부 알고리즘에 의해 정수형/부동소숫점형을 처리하는 방식으로 바뀌긴 했습니다. 이런 특성 때문에 Lua는 정수형과 부동수숫점형을 엄격하게 구별하는 프로그래밍은 지양하는 것이 좋습니다. Lua의 문자열 타입은 대부분의 프로그래밍 언어와는 대동소이하므로 자세한 설명은 하지 않겠습니다. Lua는 작은따옴표와 큰따옴표 모두 문자열을 표시할 때 사용가능합니다. 대괄호 2개로도 문자열을 표시할 수 있는데 이때 코드에서 엔터를 치면 문자열에도 개행 문자가 반영이됩니다. ==== 테이블 ==== 마지막으로 Lua에는 테이블이라는 형태가 있는데, 이는 C언어의 배열(array)이나 파이썬의 리스트(list)와 마찬가지로 여러 개의 변수를 하나로 묶어서 처리하는 타입입니다. 특이하게도 Lua는 파이썬같이 많은 언어에서 리스트와 딕셔너리(dictinary, 키값이 별도로 정의된 배열)/객체(Object, 자바스크립트에서 사용하는 용어)를 별도의 자료형으로 분류하는 것과는 다르게 테이블이라는 자료형 하나로 정의한다는 겁니다. 테이블은 중괄호로 묶인 형태(<code>{1,2,3}</code>)로 정의됩니다. 또한 숫자 뿐 아니라 NaN과 nil을 제외한 모든 숫자/문자열, 심지어는 '''테이블'''도 다른 테이블의 키값으로도 정의할 수 있습니다. 키값을 따로 지정할 때에는 키값에 해당하는 부분에 대괄호를 묶고, 뒤에 값을 지정하면 됩니다. 또 주의할 점이 하나 더 있는데, Lua의 테이블은 인덱스를 따로 지정하지 않을 경우 많은 프로그래밍 언어가 첫 인덱스를 0부터 시작하는 것과는 달리 1부터 시작한다는 점도 특징입니다. 아래의 테이블은 모두 같은 테이블을 의미합니다. Lua가 테이블을 정의하는 방법이 상당히 다양하다는 것을 알 수 있습니다. <syntaxhighlight lang="lua"> tb = {1,3,5,7} tb = {[1]=1, [2]=3, [3]=5, [4]=7} tb = {} tb[1]=1 tb[2]=3 tb[3]=5 tb[4]=7 -- lua는 세미콜론 같은 구분자 없이도 여러 식을 한 줄에 표현할 수 있는 언어입니다. </syntaxhighlight> <syntaxhighlight lang="lua"> tb = {1,3,5,7} -- 여기서 5를 출력하려면 tb[3] -- 이렇게 작성합니다. tb['3'] -- 불가능! </syntaxhighlight> 아래처럼 테이블은 딕셔너리와 배열을 섞은 형태도 가능합니다. <syntaxhighlight lang="lua"> tb = {['1']=1, ['2']=3, ['첫 번째']=3} tb = {['1']=1, ['2']=3, {2, 3}, {2, 1}, 'asdf'} -- 이런 형태도 가능합니다. print(tb['1']) -- 1 키값이 있으므로 딕셔너리 요소 print(tb[1]) -- table: 0x564267230cb0 ({2, 3}) print(tb[1][1]) -- 2 print(tb[3]) -- asdf 키값이 없으므로 배열 요소처럼 됩니다. </syntaxhighlight> 테이블은 또한 루아 모듈을 만드는데에 사용됩니다. 요약: 리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다. 취소 편집 도움말 (새 창에서 열림) | () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |} {{lang|}} · {{llang||}} · {{인용문|}} · {{인용문2|}} · {{유튜브|}} · {{다음팟|}} · {{니코|}} · {{토막글}} {{삭제|}} · {{특정판삭제|}}(이유를 적지 않을 경우 기각될 가능성이 높습니다. 반드시 이유를 적어주세요.) {{#expr:}} · {{#if:}} · {{#ifeq:}} · {{#iferror:}} · {{#ifexist:}} · {{#switch:}} · {{#time:}} · {{#timel:}} · {{#titleparts:}} __NOTOC__ · __FORCETOC__ · __TOC__ · {{PAGENAME}} · {{SITENAME}} · {{localurl:}} · {{fullurl:}} · {{ns:}} –(대시) ‘’(작은따옴표) “”(큰따옴표) ·(가운뎃점) …(말줄임표) ‽(물음느낌표) 〈〉(홑화살괄호) 《》(겹화살괄호) ± − × ÷ ≈ ≠ ∓ ≤ ≥ ∞ ¬ ¹ ² ³ ⁿ ¼ ½ ¾ § € £ ₩ ¥ ¢ † ‡ • ← → ↔ ‰ °C µ(마이크로) Å °(도) ′(분) ″(초) Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ(뮤) Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω · Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ · Ϊ ϊ Ϋ ϋ · ΐ ΰ Æ æ Đ(D with stroke) đ Ð(eth) ð ı Ł ł Ø ø Œ œ ß Þ þ · Á á Ć ć É é Í í Ĺ ĺ Ḿ ḿ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź · À à È è Ì ì Ǹ ǹ Ò ò Ù ù · İ Ż ż ·  â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û · Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ · ǘ ǜ ǚ ǖ · caron/háček: Ǎ ǎ Č č Ď ď Ě ě Ǐ ǐ Ľ ľ Ň ň Ǒ ǒ Ř ř Š š Ť ť Ǔ ǔ Ž ž · breve: Ă ă Ğ ğ Ŏ ŏ Ŭ ŭ · Ā ā Ē ē Ī ī Ō ō Ū ū · à ã Ñ ñ Õ õ · Å å Ů ů · Ą ą Ę ę · Ç ç Ş ş Ţ ţ · Ő ő Ű ű · Ș ș Ț ț