编辑:不幸的是,LuaJIT在下面的链接中被取消了比较.
这种编程语言的比较表明,LuaJIT比普通的Lua实现有十倍以上的改进.为什么变化如此之大?是否有一些特定的Lua使得它从JIT编译中受益匪浅?Python是动态类型化的,并且也被编译为字节码,那么为什么PyPy(我相信现在有JIT)显示出如此大的性能提升?
如果我有这样的项目列表:
local items = { "apple", "orange", "pear", "banana" }
Run Code Online (Sandbox Code Playgroud)
如何检查此列表中是否有"橙色"?
在Python中我可以这样做:
if "orange" in items:
# do something
Run Code Online (Sandbox Code Playgroud)
Lua中有同等的东西吗?
根据计算机语言基准测试游戏,LuaJIT实现似乎击败了所有其他JIT-ed动态语言(V8,Tracemonkey,PLT Scheme,Erlang HIPE)一个数量级.
我知道这些基准测试不具代表性(正如他们所说:"哪种编程语言实现具有最快的基准测试程序?"),但这仍然令人印象深刻.
在实践中,情况确实如此吗?有人测试过Lua的实现吗?
我的目录结构如下所示:
|-- ball.lua
|-- entity.lua
|-- test
`-- ball_test.lua
Run Code Online (Sandbox Code Playgroud)
我在test/ball_test.lua中使用以下代码来从父目录中获取ball.lua:
package.path = package.path .. ";../entity.lua"
require("entity")
package.path = package.path .. ";../ball.lua"
require("ball")
Run Code Online (Sandbox Code Playgroud)
entity.lua是ball.lua的依赖项.所以我首先要求("实体")否则我得到一个模块'entity.lua'找不到错误.这似乎是一个黑客,有什么更好的方法来做到这一点?
我知道Love2D和Corona SDK(适用于移动设备).有没有其他游戏引擎使用您推荐的Lua?
我目前正在使用 Neovim 6.0。我还使用以下 neovim-config : https: //github.com/rafi/vim-config。
\n安装后,我创建了一个python程序来测试,遇到的问题如下:\n
\n\ntreesitter/highlighter: 执行 lua 时出错: ...im/0.6.0/share/nvim/runtime/lua/vim/treesitter/query.lua:161: 查询: 位置 5622 处的节点类型无效\n~ pdb~ \xe2 \xae\xa1 片段 [VSnip] st
\n
当我在Lua中执行"os.execute"时,控制台会快速弹出,执行命令,然后关闭.但是有没有办法只使用标准的Lua库来取回控制台输出?
myTable = {}
myTable["foo"] = 12
myTable["bar"] = "blah"
print(#myTable) -- this prints 0
Run Code Online (Sandbox Code Playgroud)
我是否真的必须遍历表中的项目才能获得密钥数量?
numItems = 0
for k,v in pairs(myTable) do
numItems = numItems + 1
end
print(numItems) -- this prints 2
Run Code Online (Sandbox Code Playgroud) 如果在一串文本中至少找到一次特定的匹配文本,我需要创建一个条件,例如:
str = "This is some text containing the word tiger."
if string.match(str, "tiger") then
print ("The word tiger was found.")
else
print ("The word tiger was not found.")
Run Code Online (Sandbox Code Playgroud)
如何检查文本是否在字符串中的某处找到?
这个问题我有一段时间以来一直有点恼火,而且从来没有到处寻找答案.
但是我想我至少可以问这个问题,也许有人可以解释一下.
基本上我使用的许多语言都使用语法糖来编写(使用C++中的语法):
int main() {
int a = 2;
a += 3; // a=a+3
}
Run Code Online (Sandbox Code Playgroud)
虽然在lua +=中没有定义,所以我必须写a=a+3,这也是关于语法糖.当使用更"有意义"的变量名称时,例如:bleed_damage_over_time或者它开始变得乏味的东西:
bleed_damage_over_time = bleed_damage_over_time + added_bleed_damage_over_time
Run Code Online (Sandbox Code Playgroud)
代替:
bleed_damage_over_time += added_bleed_damage_over_time
Run Code Online (Sandbox Code Playgroud)
所以如果你没有一个好的解决方案,我想知道如何解决这个问题,在这种情况下,我当然会有兴趣听到它; 但是为什么lua没有实现这种语法糖.