Lua 제1장 - 시작
4589 단어 lua
제일 간단한 프로그램 하나 적어. Hello World.
print("Hello World")
만약 네가 위의 이 구절을 Hello에 저장한다면.lua 파일에서 명령줄에서: prompt > lua hello만 있으면 됩니다.루아 씨, 결과 보셨어요?좀 복잡한 예를 살펴보겠습니다.
-- defines a factorial function
function fact (n)
if n == 0 then return 1
else
return n * fact(n-1)
end
end
print("enter a number:")
a = io.read("*number") -- read a number
print(fact(a))
이 예는 입력 매개 변수 n의 곱셈을 계산하는 함수를 정의했다.이 예는 사용자에게 숫자 n을 입력한 다음 n의 곱셈을 인쇄하도록 요구한다.
1.1 Chunks
Chunk은 일련의 문장으로 Lua가 실행하는 모든 문장, 예를 들어 파일이나 상호작용 모드의 모든 줄은 Chunk이다.
각 문장의 끝에 있는 분호 C;)선택할 수 있지만 같은 줄에 여러 개의 문장이 있으면 가장 좋다.갈라놓다
a = 1 b= a*2 --ugly, but valid
하나의 Chunk는 하나의 문장일 수도 있고 일련의 문장의 조합일 수도 있고 함수일 수도 있다. Chunk는 매우 크다. Lua에서 몇 개의 MByte의 Chunk는 매우 흔히 볼 수 있다.상호작용 모드로 Lua를 실행할 수 있습니다. 파라미터가 없는 Lua를 실행할 수 있습니다.
Lua 5.0 Copyright© 1994-2003 Tecgraf,PUC-Rio
>
네가 입력한 모든 명령 C (예: "Hello World") 는 네가 리턴을 입력한 후 바로 실행된다. 파일 끝 문자를 입력하면 상호작용 모드인 CCtrl-D in Unix, Ctrl-Z in DOS/Windows를 종료하거나 OS 라이브러리의 os를 호출할 수 있다.exit () 함수도 종료할 수 있습니다.
상호작용 모드에서 Lua는 보통 모든 줄을 하나의 Chunk로 간주하지만, Lua 한 줄이 완전한 Chunk이 아니라면, 그는 완전한 Chunk를 얻을 때까지 계속 입력을 기다릴 것이다.Lua가 계속 줄을 기다리는 동안 다른 프롬프트 C (일반적으로 >) 를 표시합니다.
매개변수를 지정하여 Lua가 일련의 Chunk를 실행할 수 있습니다.예를 들어 하나의 파일 a에 하나의 문장 x=1이 있다고 가정한다.다른 파일 b 문장 print (x)
prompt> lua-la -lb
명령은 먼저 하나의 Chunk 내에서 a를 실행한 다음 b를 실행합니다.C 주의: - l 옵션은 Require를 호출하고 지정한 디렉터리에서 파일을 검색합니다. 환경 변수가 설정되지 않으면 위의 명령이 제대로 실행되지 않을 수도 있습니다.우리는 8.1절에서therequire function에 대해 상세하고 상세하게 토론할 것이다)
- i 옵션을 사용하려면 지정된 Chunk을 실행한 후 상호 작용 모드로 이동해야 합니다.
prompt> lua -i -la-lb
Chunk 내에서 a를 실행한 다음 b를 실행한 다음 상호작용 모드로 들어갑니다.
외부 Chunk에 연결하는 또 다른 방법은 dofile 함수를 사용하여 파일을 불러오고 실행하는 것입니다.파일이 있다고 가정합니다.
-- file 'lib1.lua'
function norm (x, y) local n2 = x^2 + y^2 return math.sqrt(n2)
end
function twice (x)
return 2*x
end
상호 작용 모드에서 다음을 수행합니다.
> dofile("lib1.lua") -- loadyour library
> n = norm(3.4, 1.0)
> print(twice(n)) --> 7.0880180586677
-i와dofile은 Lua 코드를 디버깅하거나 테스트할 때 편리합니다.
1.2 글로벌 변수
전역 변수는 설명할 필요가 없습니다. 변수에 값을 부여한 후에 이 전역 변수를 만들었습니다. 초기화되지 않은 전역 변수에 접근해도 오류가 발생하지 않습니다. 단지 결과는:nil입니다.
print(b) --> nil
b = 10
print(b) --> 10
전역 변수를 삭제하려면 마이너스 변수를nil로 하기만 하면 됩니다
b = nil
print(b) --> nil
이런 변수 b는 여태껏 사용된 적이 없는 것과 같다.다시 말하면, 단지 하나의 변수가nil과 같지 않을 때, 이 변수는 존재한다.
1.3 사법 약정
표시자: 자모(letter) 또는 밑줄의 시작 자모, 밑줄, 숫자 서열.Lua의 보존자도 이렇기 때문에 밑줄에 대문자를 넣은 표시자를 사용하지 않는 것이 좋다.Lua에서 letter의 의미는 로컬 환경에 의존한다.
보존 단어: 다음 문자는 Lua의 보존 단어이며 식별자로 사용할 수 없습니다.
and break do else elseif end false for function if in local nil not or repeat return then true until
while 주의: 루아는 대소문자가 민감합니다.주석:한 줄 주석:--여러 줄 주석:--[--]]
--[[
print(10) -- no action(comment)
--]]
1.4 명령줄 방식
lua[options] [script [args]]
-e: 명령을 Lua로 직접 전달
prompt> lua -e "print(math.sin(12))" --> -0.53657291800043
-l: 파일을 로드합니다.
-i: 상호작용 모드로 들어갑니다.
_PROMPT 내장 변수를 상호 작용 모드의 프롬프트로 사용
prompt>lua -i -e "_PROMPT=' lua>'"
lua>
매개변수를 실행하기 전에 환경 변수 Lua 를 찾는 Lua의 실행 프로세스INIT의 값입니다. 변수가 존재하고 값이 @filename이면 Lua는 지정된 파일을 로드합니다.변수가 존재하지만 @로 시작하지 않으면, Lua는 filename을 Lua 코드 파일로 가정하고 실행합니다.이 특성을 이용하여 우리는 상호작용을 하는 환경을 설정하고 유연하게 설정할 수 있다.패키지를 불러오거나 알림부호와 경로를 수정하거나 자신의 함수를 정의하거나 수정하거나 이름을 바꾸는 함수 등을 할 수 있습니다.
글로벌 변수 arg는 Lua의 명령행 매개 변수를 저장합니다.
prompt> luascript a b c
Lua는 실행하기 전에 모든 매개변수를 사용하여 arg 테이블을 구성합니다.스크립트 이름은 0이고, 스크립트의 매개 변수는 1부터 증가합니다.스크립트 앞의 매개 변수는 -1부터 감소합니다.
prompt> lua -e "sin=math.sin" scripta b
arg 테이블은 다음과 같습니다.
arg[-3] ="lua"
arg[-2] ="-e"
arg[-1] = "sin=math.sin" arg[0] ="script"
arg[1] ="a"
arg[2] ="b"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Neovim을 위한 자동 완성NeoVim으로 생산성을 높일 수 있는 가장 멋진 기능 중 하나는 자동 완성이므로 성능에 따라 플러그인을 선택할 수 있습니다. YouCompleteMe Coc.nvim 이 플러그인은 사용하기 좋지만 Javascrip...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.