#1
a = { }
x = "y"
a[x] = 10
print( a[x] ) ---> 10
print( a.x ) ---> nul
print( a.y ) ---> 10
a.x 와 a["x"]가 동일하고 a[x]는 다는 표현이다.
#2
x = x or v
은
if not x then x = v end
와 같다
#3
for i, v in pairs( a ) do print( v ) end
===> i에는 색인(키), v에는 값을 넣는다.
ipairs() 와 pairs() 차이첨이 뭔지 궁금...
#4
함수(callee)에서 여러개의 값을 리턴 할 수 있고..
받아주는 쪽(caller)에서는 받아주는 변수가 존재하는 만큼 받아준다
변수가 더 존재할 경우 그 변수의 값은 nil로 채워지고
부족한 경우 리턴된 값은 버려진다.
#5
function test( ... )
end
function test( a, b, c )
local a, b, c = ...)
return ...
end
# 6
function rename( arg )
return os.rename( arg.old, arg.new )
end
rename( old = "first.lua", old = "second.lua" )
위와 같이 호출할 경우 rename() 함수는 테이블을 넘기게 된다.
아마도 rename 함수에서 return os.rename( arg["old"], arg["new"] ) 해도 동일한 효과(?)
'프로그래밍 > 언어_스크립트' 카테고리의 다른 글
C 함수 C++ 에서 사용하기 (0) | 2013.11.24 |
---|---|
[lua] 루아의 독특한 문법 몇가지 #2 (0) | 2013.11.14 |
const와 함수 (0) | 2013.05.25 |
C언어의 함수 호출 규칙 (0) | 2012.06.14 |
어셈 참고 약간 (0) | 2012.06.06 |