Permanently protected module

모듈:테이블 도구

Module

------------------------------------------------------------------------------------ 테이블 도구 -- --                                                                                -- 이 모듈에는 Lua 테이블을 처리하기 위한 다양한 기능이 포함되어 있습니다. -- 이것은 메타 모듈이며, 다른 루아 모듈에서 호출되어야 하며, 그러면 안 됩니다. #dll에서 직접 호출됩니다. -- ------------------------------------------------------------------------------------  현지의 라이브러리유틸 = 요구하다('라이브러리유틸')  현지의 p = {}  자주 사용되는 변수와 함수를 정의합니다. 현지의 바닥. = 수학.플로어 현지의 무한한 = 수학, 수학,수학 현지의 checkType = 라이브러리유틸.checkType 현지의 검사 유형 다중 = 라이브러리유틸.검사 유형 다중  ------------------------------------------------------------------------------------ 양의 정수입니다. -- 이 함수는 지정된 값이 양의 정수이면 true를 반환하고 false를 반환합니다. 그렇지 않다면테이블에서 작동하지는 않지만, 여기에 그대로 포함되어 있습니다. 주어진 테이블 키가 배열 부분에 있는지 또는 배열 부분에 있는지 결정하는 데 유용합니다. 테이블의 일부를 해시합니다. ------------------------------------------------------------------------------------ 기능. p.양의 정수입니다.(v)  돌아가다 유형(v) == '숫자' 그리고. v >= 1 그리고. 바닥.(v) == v 그리고. v < 무한한 끝.  ------------------------------------------------------------------------------------ 아이즈난 -- 이 함수는 지정된 숫자가 NaN 값이면 true를 반환하고, 다음 값이면 false를 반환합니다. 아닙니다. 테이블에서 작동하지 않지만 유용하기 때문에 여기에 포함되어 있습니다. 값이 유효한 테이블 키가 될 수 있는지 여부를 결정합니다.Lua는 다음을 생성합니다. 테이블 키로 NaN을 사용하는 경우 오류가 발생합니다. ------------------------------------------------------------------------------------ 기능. p.아이즈난(v)  돌아가다 유형(v) == '숫자' 그리고. v ~= v 끝.  ------------------------------------------------------------------------------------ 얕은 클론 -- 테이블의 복제본을 반환합니다.반환된 값은 새 테이블이지만 모두 하위 테이블 및 함수가 공유됩니다.메타 메소드는 존중되지만 반환되는 것은 테이블에 자체 메타테이블이 없습니다. ------------------------------------------------------------------------------------ 기능. p.얕은 클론(t)  checkType('낮은 클론', 1, t, '탁자')  현지의 리트 = {}  위해서 k, v  쌍들(t) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   리트[k] = v  끝.  돌아가다 리트 끝.  ------------------------------------------------------------------------------------ 제거중복 -- 이렇게 하면 배열에서 중복 값이 제거됩니다.양의 정수가 아닌 키는 무시된가장 빠른 값이 유지되고 이후의 모든 중복 값은 제거되었지만 그렇지 않으면 배열 순서가 변경되지 않습니다. ------------------------------------------------------------------------------------ 기능. p.제거중복(아어)  checkType('중복 제거', 1, 아어, '탁자')  현지의 아이즈난 = p.아이즈난  현지의 리트, 존재한다 = {}, {}  위해서 _, v  짝을 짓다(아어) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   한다면 아이즈난(v) 그리고나서    NaN은 테이블 키가 될 수 없고, 또한 고유하기 때문에 존재 여부를 확인할 필요가 없습니다.    리트[#리트 + 1] = v   또 다른    한다면 것은 아니다. 존재한다[v] 그리고나서     리트[#리트 + 1] = v     존재한다[v] = 진실의    끝.   끝.  끝.  돌아가다 리트 끝.  ------------------------------------------------------------------------------------ numKeys -- 테이블을 사용하고 임의의 숫자를 포함하는 배열을 반환합니다. 숫자 순서로 정렬된 값이 아닌 키입니다. ------------------------------------------------------------------------------------ 기능. p.numKeys(t)  checkType('numKeys', 1, t, '탁자')  현지의 양의 정수입니다. = p.양의 정수입니다.  현지의 숫자들 = {}  위해서 k  쌍들(t) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   한다면 양의 정수입니다.(k) 그리고나서    숫자들[#숫자들 + 1] = k   끝.  끝.  테이블. 테이블.(숫자들)  돌아가다 숫자들 끝.  ------------------------------------------------------------------------------------ 숫자를 붙입니다. -- 테이블을 사용하고 키 수를 포함하는 배열을 반환합니다. 지정된 접두사 및 접미사.예를 들어, 표의 경우 {a1 = 'foo', a3 = 'bar', a6 = 'baz'} 및 접두사 "a", prefixNums가 반환됩니다. -- {1, 3, 6}. ------------------------------------------------------------------------------------ 기능. p.숫자를 붙입니다.(t, 접두어, 접미사)  checkType('affixNums', 1, t, '탁자')  checkType('affixNums', 2, 접두어, '끈', 진실의)  checkType('affixNums', 3, 접미사, '끈', 진실의)   현지의 기능. 깨끗한 패턴(s)   마법 문자()%가 되도록 패턴을 청소합니다.[]*+-?^$는 문자 그대로 해석됩니다.   돌아가다 s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')  끝.   접두어 = 접두어 또는 ''  접미사 = 접미사 또는 ''  접두어 = 깨끗한 패턴(접두어)  접미사 = 깨끗한 패턴(접미사)  현지의 양식 = '^' .. 접두어 .. '([1-9]%d*)' .. 접미사 .. '
                
현지의 숫자들 = {} 위해서 k 쌍들(t) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 한다면 유형(k) == '끈' 그리고나서 현지의 번호 = mw.ustring.경기(k, 양식) 한다면 번호 그리고나서 숫자들[#숫자들 + 1] = 수에 달하여(번호) 끝. 끝. 끝. 테이블. 테이블.(숫자들) 돌아가다 숫자들 끝. ------------------------------------------------------------------------------------ numData -- {"foo1", "bar1", "foo2", "baz2"}과(와) 같은 키가 있는 테이블이 지정되면 테이블이 반환됩니다. 형식의 하위 테이블. {[1] = {foo = 'text', 막대 = 'text', [2] = {foo = 'text', baz = 'text'}}. 정수로 끝나지 않는 키는 "other"라는 하위 테이블에 저장됩니다. compress 옵션은 테이블을 압축하여 테이블을 반복할 수 있도록 합니다. 짝을 지어요 ------------------------------------------------------------------------------------ 기능. p.numData(t, 압축하다.) checkType('numData', 1, t, '탁자') checkType('numData', 2, 압축하다., '''비공식''', 진실의) 현지의 리트 = {} 위해서 k, v 쌍들(t) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 현지의 접두어, 번호 = mw.ustring.경기(끈으로 묶는(k), '^([^0-9]*)([1-9][0-9]*)
$$SIDE_BOTTOM$$
    $$BOTTOM$$