Lua 의 table 학습 노트
table 특성
이전에 Lua 데이터 형식 을 소개 할 때 table 의 일부 특성 도 말 했 습 니 다. 간단하게 다음 과 같이 열거 합 니 다 (상세 한 내용 은 이전의 소 개 를 볼 수 있 습 니 다).
1. table 은 '관련 배열' 입 니 다. 배열 의 색인 은 숫자 나 문자열 2. table 의 기본 초기 색인 일 수 있 습 니 다. 보통 1 로 시작 합 니 다. 3. table 의 변 수 는 주소 참조 일 뿐 table 의 작업 에 데이터 영향 을 주지 않 습 니 다. 4. table 은 길이 가 고정 되 지 않 고 새로운 데이터 가 삽입 되 었 을 때 길이 가 5. table 의 방법 함수 가 자동 으로 증가 합 니 다.
Lua 5.2.2 에는 다음 과 같은 7 가지 table 작업 방법 이 내장 되 어 있 습 니 다.
concat
함수 table. concat 는 표 의 모든 요 소 를 구분자 (separator) 로 연결 하여 조합 하 는 데 사 용 됩 니 다. 용법:
table.concat(table, sep, start, end)
위 에 table 을 제외 하고 sep, start, end 세 개의 매개 변 수 는 모두 선택 할 수 있 고 순서대로 읽 을 수 있 습 니 다. 입력 이 지정 되 지 않 으 면 함수 concat 는 기본 값 (구분자 sep 의 기본 값 은 빈 문자 이 고 start 의 기본 값 은 1 이 며 end 의 기본 값 은 배열 부분의 총 길이) 으로 실 행 됩 니 다.
local tbl = {"apple", "pear", "orange", "grape"}
print(table.concat(tbl))
print(table.concat(tbl, "、"))
print(table.concat(tbl, "、", 2))
print(table.concat(tbl, "、", 2, 3))
밀집 형 문자 와 연결 에 있어 table. concat 는 '...' 로 연결 하 는 것 보다 효율 적 입 니 다. 다음은 time 으로 테스트 하 는 효과 입 니 다.
local str = {}
for i = 1, 10000 do
str[i] = "str"
end
print(table.concat(str))
--real 0m0.005s
--user 0m0.003s
--sys 0m0.002s
local str = ""
for i = 1, 10000 do
str = str .. "str"
end
print(str)
--real 0m0.041s
--user 0m0.037s
--sys 0m0.002s
insert
함수 table. insert 는 table 의 지정 한 위치 (pos) 에 새로운 요 소 를 삽입 하 는 데 사 용 됩 니 다. 용법:
table.insert(table, pos value)
인자 pos 는 선택 할 수 있 습 니 다. 기본 값 은 table 끝 위치 입 니 다.
local tbl = {"apple", "pear", "orange", "grape"}
table.insert(tbl, "watermelon")
print(table.concat(tbl, "、"))
table.insert(tbl, 2, "watermelon")
print(table.concat(tbl, "、"))
maxn
함수 table. maxn 은 table 의 최대 정수 색인 값 을 되 돌려 줍 니 다. 용법:
table.maxn (table)
정수 색인 값 이 존재 하지 않 으 면 0 으로 돌아 갑 니 다.
local tbl = {"apple", "pear", "orange", "grape"}
print(table.maxn(tbl))
local tbl = {"apple", "pear", "orange", "grape", [26] = "watermelon"}
print(table.maxn(tbl))
local tbl = {[-1] = "apple", [-2] = "pear", [-3] = "orange", [-4] = "grape"}
print(table.maxn(tbl))
pack
함수 table. pack 은 1 부터 색인 을 가 져 오 는 매개 변수 표 table 이 며, 이 table 에 대해 필드 n 을 미리 정의 하여 표 의 길 이 를 표시 합 니 다. 용법:
table.pack(・・・)
이 함 수 는 들 어 오 는 함수 의 인 자 를 가 져 오 는 데 자주 사용 된다.
function table_pack(param, ...)
local arg = table.pack(...)
print("this arg table length is", arg.n)
for i = 1, arg.n do
print(i, arg[i])
end
end
table_pack("test", "param1", "param2", "param3")
remove
함수 table. remove 는 table 의 어떤 값 을 삭제 하 는 데 사 용 됩 니 다. 용법:
table.remove (list [, pos])
매개 변수 pos 를 선택 할 수 있 습 니 다. 기본적으로 table 의 마지막 요 소 를 삭제 하고 매개 변수 pos 의 유형 은 디지털 number 형식 일 수 있 습 니 다.
local tbl = {"apple", "pear", "orange", "grape"}
table.remove(tbl, 2)
print(table.concat(tbl, "、"))
table.remove(tbl)
print(table.concat(tbl, "、"))
sort
함수 table. sort 는 table 의 요 소 를 정렬 하 는 데 사 용 됩 니 다. 용법:
table.sort(table, comp)
매개 변수 comp 는 정렬 대비 함수 입 니 다. 두 개의 매개 변수 인 param 1, param 2 가 있 습 니 다. 만약 param 1 이 param 2 앞 에 있 으 면 정렬 함 수 는 true 로 돌아 갑 니 다. 그렇지 않 으 면 false 로 돌아 갑 니 다.
local tbl = {"apple", "pear", "orange", "grape"}
local sort_func1 = function(a, b) return a > b end
table.sort(tbl, sort_func1)
print(table.concat(tbl, "、"))
local sort_func2 = function(a, b) return a < b end
table.sort(tbl, sort_func2)
print(table.concat(tbl, "、"))
파라미터 comp 를 선택 할 수 있 습 니 다. comp 가 부족 한 경우 표 에 대해 오름차 순 으로 정렬 합 니 다.
local tbl = {"apple", "pear", "orange", "grape"}
table.sort(tbl)
print(table.concat(tbl, "、"))
unpack
함수 table. unpack 은 table 의 요 소 를 되 돌려 주 는 데 사 용 됩 니 다. 용법:
table.unpack(table, start, end)
매개 변수 start 는 되 돌아 오기 시작 하 는 요소 의 위치 입 니 다. 기본 값 은 1 입 니 다. 매개 변수 end 는 마지막 요소 의 위 치 를 되 돌려 줍 니 다. 기본 값 은 table 의 마지막 요소 의 위치 입 니 다. 매개 변수 start, end 는 모두 선택 할 수 있 습 니 다.
local tbl = {"apple", "pear", "orange", "grape"}
print(table.unpack(tbl))
local a, b, c, d = table.unpack(tbl)
print(a, b, c, d)
print(table.unpack(tbl, 2))
print(table.unpack(tbl, 2, 3))
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.