Lua Table Sort
lua์ table ์ ๋ ฌ lua์์ table.sort(t,func) ํจ์๋ฅผ ์ด์ฉํ์ฌ ์ ๋ ฌํ๋ค. t๋ ํ ์ด๋ธ, func๋ ํจ์์ด๋ค. table.sort(t) ํ์ ๊ฒฝ์ฐ ์์๊ฐ ๋ฌธ์,์ซ์๋ฅผ ๊ธฐ๋ณธ ์ ๋ ฌํ๋ค. ํ์ง๋ง ์ค๋ฆ์ฐจ์, ๋ด๋ฆผ์ฐจ์, ๋์๋ฌธ์ ๊ตฌ๋ณ ๋ฑ ๋ค์ํ ์ ์ด๋ฅผ ํ๊ธฐ ์ํด์๋ ์๋ ํจ์๋ฅผ ๋ง๋ค์ด ํ์ฉํ๋ฉด ํธ๋ฆฌํ๋ค. ์ฃผ์ํ ์ ์ ์๋ณธ table์ ์์น๊ฐ ์ ๋ ฌ์ํ๋ก ๋ฐ๋๊ฒ ๋๋ค. ์๋ณธ์ ์ ์งํ๊ณ ์ถ๋ค๋ฉด ๋ณต์ฌ๋ณธ์ ๋ง๋ ๋ค์ ์ ๋ ฌํด์ผ ํ๋ค. ํํฐ ํจ์ ์ ์ -- *sort.asc* : ์ซ์,๋ฌธ์,UTF8 ๋ชจ๋ ๊ฐ๋ฅ local function ascending(a,b) return a < b -- a๊ฐ b๋ณด๋ค ์์ผ๋ฉด true end -- *sort.desc* : ์ซ์,๋ฌธ์,UTF8 ๋ชจ๋ ๊ฐ๋ฅ local function descending(a,b) return a > b -- a๊ฐ b๋ณด๋ค ํฌ๋ฉด true end -- *sort.bylength* local function bylength(a,b) return #a < #b -- ๋ฌธ์์ด์ ๊ธธ์ด์ ๋ฐ๋ผ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ end -- *sort.iascendig* - ๋์๋ฌธ์ ๊ตฌ๋ถ ์์ด ์ค๋ฆ์ฐจ์ ์ ๋ ฌ local function iascendig(a,b) return string.lower(a) < string.lower(b) end -- *sort.idescending* - ๋์๋ฌธ์ ๊ตฌ๋ถ ์์ด ์ ๋ ฌ local function idescending(a,b) return string.lower(a) > string.lower(b) end -- *sort.bykey* local function bykey(key) return function(a,b) return a[key] < b[key] end end ํ์ฉ local numbers = {5, 3, 8, 1, 2} table.sort(numbers, ascending) -- ์ค๋ฆ์ฐจ์ ์ ๋ ฌ local strings = {"banana", "apple", "cherry"} table.sort(strings, alphabetical) -- ์ํ๋ฒณ ์ ์ ๋ ฌ local objects = { {name = "Alice", age = 30}, {name = "Bob", age = 25}, {name = "Charlie", age = 35} } table.sort(objects, byKey("age")) -- ๋์ด์ ๋ฐ๋ผ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ REFERENCE duck.ai Quick Guide to Lua Table Sort: Mastering Order with Ease https://luascripts.com/lua-table-sort