1
A
답변
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)