2014-11-22 2 views

답변

2

아니,하지만 당신은 요소의 테이블 자체에 대한 참조 저장할 수 있습니다

tbl = {} 
tbl.Italy = {"Roma", tbl} 
print(tbl == tbl.Italy[2]) 

인쇄 true합니다.

0

당신은 속성 (테이블 필드)에 대해 수행 할 작업을 할 수 없지만 당신이 방법으로 작업을 수행 할 수 있습니다

function tbl.getItaly(self) 
    return self.Italy 
end 

다음 tbl:getItaly()은 TBL의 이탈리아 반환합니다; 메소드에서 self은 루아 인터프리터에 의해 암시 적으로 주어지며 호출 된 메소드를 포함하는 테이블을 나타냅니다. 콜론이 아닌 도트 구문을 사용해야합니다.

0

키는 nil 이외의 값입니다. 이 경우 string 값이 있습니다 (이탈리아). 어떤 가치도 "부모"또는 "소유자"라는 일반적인 개념을 가지고 있지 않습니다. 그럼에도 불구하고 필요한 경우 해당 개념을 적용 할 구조를 만들 수 있습니다.

local capitals = {} 
capitals.Italy = { capital = "Roma", collection = capitals } 
capitals["Czech Republic"] = { capital = "Prague", collection = capitals } 

local playwrights = {} 
playwrights["William Shakespeare"] = { born = 1564, died = 1616, collection = playwrights } 


local fact = capitals.Italy 
print(fact.collection == capitals)