Lua 언어에서 명령행 인자는 변수 arg로 처리한다. 즉, arg는 Lua 언어에서 하나의 (명령행 인자 처리 변수) 예약어인 셈이다. 이 변수는 명령행 실행시 옵션으로 입력된 인자들을 스트링 값으로 모아둔 리스트 타입의 변수이다. 이 변수가 가리키는 리스트에 속한 아이템의 개수를 구하기 위해서는 전위 단항연산자 #을 선두에 붙이면 된다. 즉 #arg가 리스트에 속한 (아이템의 개수)-1이다. 그런데 Lua 언어에서는 Python 언어에서 처럼, 명령행 실행시 실행될 소스파일명의 인덱스 번호가 0번이므로, 아래의 소스 코드에서 우리가 처리할 명령행 인자들은 1번, 2번, 3번, .... 의 인텍스 번호를 갖는다.
(참고로, Lua 언어의 신택스는 테이블 타입의 자료 처리를 기반으로 하고 있으며, 리스트 타입이라고 하는 것도 실제로는 특수한 테이블 타입 중 하나인 셈이다.)

Lua 언어에서 줄 단위 주석문 기호는 --이다. 소스 코드의 어느 줄이든 -- 및 그 우측 부분은 모두 주석으로 처리된다. 이 기호는 Python/Ruby 언어의 줄 단위 주석문 기호 #에 해당하며, C/C++/Java/Groovy 언어의 줄 단위 주석문 기호 //에 해당한다.



소스 파일명: testArguments.lua
  1. -- 명령행 인자(command-line argument) 개수 출력
  2. print( "Count of arguments: " .. #arg )
  3. sum = 0.0
  4. for i = 1, #arg do
  5.     -- 스트링을 부동소수점수로 변환하여 누적
  6.     sum = sum + tonumber(arg[i])
  7. end
  8. -- 누적된 값을 출력
  9. print( "The sum of arguments is " .. sum)


실행> lua testArguments.lua 1 2 3 4
Count of arguments: 4
The sum of arguments is 10


실행> lua testArguments.lua 1 2 3 4.5
Count of arguments: 4
The sum of arguments is 10.5





Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

Posted by Scripter
,