모듈:표 도구/샌드박스

Module
------------------------------------------------------------------------------------ -- TableTools -- --                                                                                -- -- 이 모듈에는 Lua 테이블을 처리하기 위한 여러 기능이 포함되어 있습니다. -- -- 이것은 메타 모듈이며, 다른 Lua 모듈에서 호출되도록 되어 있습니다. --#call에서 직접 호출됩니다. -- ------------------------------------------------------------------------------------  현지의 라이브러리 Util = 요구하다('라이브러리 유틸')  현지의 p = {}  -- 자주 사용하는 변수와 함수를 정의합니다. 현지의 바닥. = math.floor 현지의 무궁무한 = math.matrix 현지의 체크 타입 = 라이브러리 Util.체크 타입 현지의 check Type Multi(다중 체크 타입) = 라이브러리 Util.check Type Multi(다중 체크 타입)  ------------------------------------------------------------------------------------ -- is Positive Integer -- -- 이 함수는 지정된 값이 양의 정수일 경우 true를 반환하고 false를 반환합니다. --그렇지 않은 경우.테이블에서는 동작하지 않지만, 그대로 여기에 포함되어 있습니다. -- 지정된 테이블 키가 배열 부분에 있는지 또는 배열 부분에 있는지 판별할 때 유용합니다. -- 테이블의 해시 부분. ------------------------------------------------------------------------------------ 기능. p.isPositiveInteger(v)  돌아가다 유형(v) == '숫자' 그리고. v >= 1 그리고. 바닥.(v) == v 그리고. v < > 무궁무한 끝.  ------------------------------------------------------------------------------------ -- IsNan -- -- 이 함수는 지정된 번호가 NaN 값일 경우 true를 반환하고, 값이 NaN일 경우 false를 반환합니다. -- 아닙니다. 테이블에서는 동작하지 않지만, 도움이 되기 때문에 여기에 포함되어 있습니다. -- 값이 유효한 테이블키인지 아닌지를 판단합니다.Lua가 생성한다. -- NaN이 테이블 키로 사용되는 경우 오류가 발생합니다. ------------------------------------------------------------------------------------ 기능. p.Nan(v)  돌아가다 유형(v) == '숫자' 그리고. v ~= v 끝.  ------------------------------------------------------------------------------------ -- 얕은 클론 -- -- 테이블 클론을 반환합니다.반환되는 값은 새 테이블이지만, -- 서브테이블과 함수는 공유됩니다.메타메트호드는 존경받지만 돌아온 사람들은 -- 테이블 자체에는 메타블이 없습니다. ------------------------------------------------------------------------------------ 기능. p.얕은 클론(t)  체크 타입('shallow Clone', 1, t, '테이블')  현지의 리트 = {}  위해서 k, v  쌍들(t)    리트[k] = v  끝.  돌아가다 리트 끝.  ------------------------------------------------------------------------------------ --removeDuplicates(복제) -- -- 이렇게 하면 배열에서 중복된 값이 제거됩니다.양의 정수 이외의 키는 -- 무시되었습니다.첫 번째 값은 유지되며 이후의 모든 중복 값은 다음과 같습니다. --삭제되었지만 그 이외의 어레이 순서는 변경되지 않습니다. ------------------------------------------------------------------------------------ 기능. p.중복 제거(arr)  체크 타입('중복 제거', 1, arr, '테이블')  현지의 Nan = p.Nan  현지의 리트, 존재한다 = {}, {}  위해서 _, v  아이페어(arr)    한다면 Nan(v) 그리고나서    NaN은 테이블 키가 될 수 없고, 또한 고유하기 때문에 존재 여부를 확인할 필요가 없습니다.    리트[#리트 + 1] = v   또 다른    한다면 것은 아니다. 존재한다[v] 그리고나서     리트[#리트 + 1] = v     존재한다[v] = 진실의    끝.   끝.  끝.  돌아가다 리트 끝.  ------------------------------------------------------------------------------------ -- numKeys(numKeys) -- --테이블을 가져와서 임의의 수치를 포함한 배열을 반환합니다. -- 숫자 순서로 정렬된 비문자 값을 가진 키. ------------------------------------------------------------------------------------ 기능. p.숫자 키(t)  체크 타입('num Keys', 1, t, '테이블')  현지의 isPositiveInteger = p.isPositiveInteger  현지의 숫자 = {}  위해서 k  쌍들(t)    한다면 isPositiveInteger(k) 그리고나서    숫자[#숫자 + 1] = k   끝.  끝.  table.displaces(숫자)  돌아가다 숫자 끝.  ------------------------------------------------------------------------------------ -- pixNums -- --테이블을 가져와서 키 수가 포함된 배열을 반환합니다. --지정된 프레픽스와 서픽스.예를 들어 테이블의 경우 -- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} 및 접두사 "a"가 반환됩니다. -- {1, 3, 6}. ------------------------------------------------------------------------------------ 기능. p.접사 번호(t, 접두사, 접미사)  체크 타입('affixNums', 1, t, '테이블')  체크 타입('affixNums', 2, 접두사, '문자열, 진실의)  체크 타입('affixNums', 3, 접미사, '문자열, 진실의)   현지의 기능. clean Pattern(클린 패턴)(s)   -- 패턴을 클리어하여 마법의 문자()%가 되도록 합니다.[]*+-?^$는 문자 그대로 해석됩니다.   돌아가다 s:서브('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')  끝.   접두사 = 접두사 또는 ''  접미사 = 접미사 또는 ''  접두사 = clean Pattern(클린 패턴)(접두사)  접미사 = clean Pattern(클린 패턴)(접미사)  현지의 양식 = '^' .. 접두사 .. '([1-9]%d*)' .. 접미사 .. '
                
현지의 숫자 = {} 위해서 k 쌍들(t) 한다면 유형(k) == '문자열 그리고나서 현지의 숫자 = .스트링.경기(k, 양식) 한다면 숫자 그리고나서 숫자[#숫자 + 1] = tonumber(숫자) 끝. 끝. 끝. table.displaces(숫자) 돌아가다 숫자 끝. ------------------------------------------------------------------------------------ -- numData -- -- {"foo1", "bar1", "foo2", "baz2" 등의 키가 있는 테이블이 지정되면 테이블이 반환됩니다. -- 하위 테이블의 형식입니다. -- {[1] = {foo = 'text', 막대 = 'text' , [2] = {foo = 'text', baz = 'text'}}. -- 정수로 끝나지 않는 키는 "other"라는 이름의 하위 테이블에 저장됩니다. -- compress 옵션에서는 테이블이 압축되어 있기 때문에 반복할 수 있습니다. -- ipairs. ------------------------------------------------------------------------------------ 기능. p.numData(t, 압축하다.) 체크 타입('numData', 1, t, '테이블') 체크 타입('numData', 2, 압축하다., '실패', 진실의) 현지의 리트 = {} 위해서 k, v 쌍들(t) 현지의 접두사, 숫자 = .스트링.경기(tostring(k), '^([^0-9]*)([1-9][0-9]*)
$$SIDE_BOTTOM$$
    $$BOTTOM$$