프로그래밍/언어_스크립트

[lua] 루아의 독특한 문법 몇가지

써드아이 2013. 11. 10. 20:37

#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"] ) 해도 동일한 효과(?)