본문 바로가기
프로그래밍/언어_스크립트

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

by 써드아이 2013. 11. 10.

#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