Programing

키로 루아 테이블 항목을 제거하는 방법은 무엇입니까?

lottogame 2020. 9. 19. 11:51
반응형

키로 루아 테이블 항목을 제거하는 방법은 무엇입니까?


해시 맵, 즉 문자열 키로 사용하는 루아 테이블이 있습니다.

local map = { foo = 1, bar = 2 }

키로 식별되는이 테이블의 요소를 "팝"하고 싶습니다. 거기이다 table.remove()방법,하지만 그것은 단지 제거 할 요소의 인덱스 (즉, 숫자)이 아닌 일반 키를합니다. 할 수 있기를 원 table.remove(map, 'foo')하며 여기에 구현 방법이 있습니다.

function table.removekey(table, key)
    local element = table[key]
    table[key] = nil
    return element
end

더 나은 방법이 있습니까?


아니요, 키 값을로 설정하는 nil것은 테이블의 해시 맵 부분에서 항목을 제거하는 데 허용되는 방법입니다. 당신이하는 일은 표준입니다. 그러나 재정의하지 않는 것이 좋습니다 table.remove(). 테이블의 배열 부분의 경우 기본 table.remove () 기능에는 재정의가 수행하지 않는 인덱스 번호 재 지정이 포함됩니다. table함수 세트에 함수를 추가하고 싶다면 아마 비슷한 이름을 붙일 것입니다 table.removekey().

참고 URL : https://stackoverflow.com/questions/1758991/how-to-remove-a-lua-table-entry-by-its-key

반응형