功能提案 |
|
核心
函式庫和功能
table.sort(t, comp)
傳回 t
,就像 setmetatable()
所做的一樣。這似乎只需在 ltablib.c 的 sort()
功能中新增 lua_settop(L, 1);
,並將傳回值從 0 變更為 1 即可達成。語法
|x| x*x
而不是 function(x) return x*x end
。這常被提到。..
是右結合運算子,而且僅限於約 200 次連結(對於 ^
來說也是如此),這可能會造成限制。a ? b : c
)僅由 x and y or b
部分近似達成。then
' 和 'do
'),其他人強烈反對。這似乎不可能,除非例如透過簡碼過濾。foo:bar()
)在沒有呼叫部分(foo:bar
)的情況下計算後封閉來評估語意
dofile
不會在呼叫者環境中執行,而是在全域環境中執行:DofileNamespaceProposal。表達能力
nil
和 NaN 無法儲存在表格中—請參閱 StoringNilsInTables...
)更輕鬆、更有效率地儲存和操作。此外,Rici 的連結元組類型建議加上後置解封運算子 ...
,例如 e = <4,5>; assert(e[2] == 5); assert(#e == 2); a,b,c... = d,e...; assert(c == <5>); assert(<2,3> .. <4> == <2,3,4>); t[<2,3>] = <3,4>; function f(a...) return function(b...) return a,b end end; assert(<f<1,2><3,4>> == <<1,2>,<3,4>>)
程式品質/正確性/錯誤處理
module
函式在模組定義中暴露許多缺陷:LuaModuleFunctionCritiqued。可能消除或修改此函式。error(message,level)
中的 level
管理起來很麻煩。它甚至未設定在 assert
中—請參閱 LuaCarp。checkglobals
函数(除了現有的 etc/strict.lua 和 test/globals.lua 解决方案之外)。checkglobals
”以了解使用案例。封装
编码风格
未分类
这些使用者页面维护了功能建议清单
pcall
[4]、YieldableForLoops、ResumableVmPatch、[coxpcall]中的yield
。已在 5.2 中大多解决了。continue
语句。这是许多人提出的要求。请参阅ContinueProposal。(已在 5.2 中以 goto 语句解决。)%f
图案表达式在 5.2 之前没有文件记录。另請參閱 LuaFiveTwo。
這些問題已關閉、撤回或已執行。
nil
與 false
n
」欄位(儘管上面 StoringNilsInTables 中仍指出了一些問題)
某些功能早已非標準 patch 形式執行:LuaPowerPatches。而其他構想則在 MetaLuaRecipes 中執行。
這會印出「1」。或許會更好,需要「--[[
」註解以「--]]
」終止,而不是僅有「]]
」
--[[ g = f[x[y]] print(1) --]]
我們可以從此頁面中移除未實際提出功能建議的項目嗎(例如 StoringNilsInTables)?或許可以先建立 LuaWarts?