반응형
좀 의아해 할 수 있습니다만, 다음의 예를 살펴보죠.
t = { [function(x) print(x) end] = "foo" }
for key,value in pairs(t) do key(value) end
위에서 보면 t 라는 테이블은 function(x) print(x) end 라는 함수 즉 x 를 인수로 받아 이를 consol 에 출력하는 함수 입니다.
이 함수 자체가 키가 됩니다. 그러면서 이 키에 설정된 값이 "foo" 입니다.
그러면 for 문에 의해서
일단
key,value in pairs(t)
에 의하여 테이블 t 에 있는 key 와 value 를 가져오게 되겠죠.
여기서 key 는 결국 앞어서 말한 함수가 됩니다. 그리고 value 는 "foo" 라는 값이 되겠죠.
do key(value)
에 의하여 결국 key 라는 함수 , 즉 앞에 키로 넣은 함수 에 value 를 인수로 호출한 것이 됩니다.
function(value) 이렇게 되겠죠.
결국 value 가 화면에 찍히게 됩니다.
과연 이런것을 어디에 사용할 까요?
다수의 값이 있고 그 값을 처리하는 함수가 각각 따로 있다고 생각해보죠.
이들을 하나의 테이블에 보관하여 관리할 수가 있겠죠.
이런정도의 용도,, 약간의 OOP 적인 성격을 갖는 용도로 활용할 수 있지 않을까 합니다.
'Programming > LUA' 카테고리의 다른 글
[루아스크립트/프로그래밍]루아(LUA)for 문에 대한 tutorial (2) (0) | 2018.05.17 |
---|---|
[루아스크립트/프로그래밍]루아(LUA)for 문에 대한 tutorial (1) (0) | 2018.05.13 |
[루아스크립트/프로그래밍]루아(LUA)주소로서의 문자열 (0) | 2018.05.13 |
[루아스크립트/프로그래밍]루아(LUA)Table key 에 대한 노트 (0) | 2018.05.11 |
[루아스크립트/프로그래밍]루아(LUA)Mixed table constructors (0) | 2018.05.11 |