标签: lua

为什么 if then return break end 在 Lua 的 for 循环中不起作用

我有以下函数,它检查是否在键值表中找到给定参数作为键。如果是这种情况,它应该返回true并跳出循环。如果什么也没找到,那就什么也不做。

function checkId(id)
  for k,v in pairs(info) do
    if id == tostring(k) then
      return true
      break -- break out of loop. mission accomplished.
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我得到一个

预期“end”(在第 192 行关闭“do”)接近“break”

当我尝试运行这个脚本时。我缺少什么?

lua

0
推荐指数
1
解决办法
3977
查看次数

从 Lua 中的字符串中删除文件名

我需要从各种字符串的末尾切掉 .ogg

例如

v = bdorian.ogg
h = {}

h[1] = v
Run Code Online (Sandbox Code Playgroud)

我怎样才能从字符串 v 的末尾截掉“.ogg”?

(快速谷歌搜索没有任何帮助)

string lua

0
推荐指数
1
解决办法
1906
查看次数

redis lua - eval 在处理 Long.MAX_VALUE 时返回错误值

127.0.0.1:7501> eval“返回{1,2,9223372036854775807}”0
1) (整数) 1
2) (整数) 2
3) (整数) -9223372036854775808

请帮助这种奇怪的行为。我知道 lua 只能通过损失一些精度来表示超过 10^15 的大数。我预计返回值为“9.2233720368548e+18”,但不是负数。

另请参考 127.0.0.1:7501> eval "return {1,2,tostring(9223372036854775807)}" 0
1) (整数) 1
2) (整数) 2
3) "9.2233720368548e+18"

127.0.0.1:7501> eval "return {1,2,tonumber(9223372036854775807)}" 0
1) (整数) 1
2) (整数) 2
3) (整数) -9223372036854775808

lua redis jedis lettuce stackexchange.redis

0
推荐指数
1
解决办法
1695
查看次数

Scrapy-Splash 等待页面加载

我是 scrapy 和splash 的新手,我需要从单页和常规网络应用程序中抓取数据。

不过,需要注意的是,我主要是从内部工具和应用程序中抓取数据,因此有些需要身份验证,并且所有这些都需要在页面完全加载之前至少几秒钟的加载时间。

我天真地尝试了Python time.sleep(秒),但它不起作用。基本上,SplashRequest 和 scrapy.Request 似乎都运行并产生结果。然后,我了解了 LUA 脚本作为这些请求的参数,并尝试使用各种形式的 wait() 编写 LUA 脚本,但看起来这些请求从未真正运行过 LUA 脚本。它立即完成,但我的 HTMl 选择器没有找到我要查找的任何内容。

我按照这里的指示https://github.com/scrapy-plugins/scrapy-splash,并让他们的 docker 实例在 localhost:8050 上运行并创建了一个 settings.py。

这里有经验的人知道我可能会错过什么吗?

谢谢!

蜘蛛.py

# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy_splash import SplashRequest
import logging
import base64
import time
# from selenium import webdriver

# lua_script="""
# function main(splash)
#     splash:set_user_agent(splash.args.ua)
#     assert(splash:go(splash.args.url))
#     splash:wait(5)

#     -- requires Splash 2.3  
#     -- while not splash:select('#user-form') do …
Run Code Online (Sandbox Code Playgroud)

python lua scrapy scrapy-splash

0
推荐指数
1
解决办法
3325
查看次数

lua:15: '[' 附近有意外的符号

我正在尝试编写一个函数来创建 CNN 模型。每当我运行脚本时,我都会收到以下错误:

lua:15: '[' 附近有意外的符号

require('torch')

require('nn')

function CeateNvidiaModel()

    --The Nvidia model
    --Input dimensions
    local n_channels = 3
    local height = 66
    local width = 200
    local nvidia_model = nn.Sequential();
    --nvida_model:add(nn.Normalize()
    --Convolutional Layers
    nvidia_model:add(nn.SpatialConvolution(n_channels, 24, 5, 5, [2], [2]))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(24, 36, 5, 5, [2], [2]))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(36, 48, 5, 5, [2], [2]))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(48, 64, 3, 3))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(64, 64, 3, 3))
    nvidia_model:add(nn.ELU(true))
    -- Flatten Layer
    nvidia_model:add(nn.Reshape(1164))
    -- FC Layers
    nvida_model:add(nn.Linear(1164, 100))
    nvidia_model:add(nn.ELU(true))
    nvida_model:add(nn.Linear(100, 50))
    nvidia_model:add(nn.ELU(true))
    nvida_model:add(nn.Linear(50, 10)) …
Run Code Online (Sandbox Code Playgroud)

lua torch

0
推荐指数
1
解决办法
3796
查看次数

如何在 Lua 中使用基类和子类构造函数来模拟简单继承(教程)

如何在Lua中使用父类和子类构造函数来模拟简单继承?

我将提供、接受和回答,如果您对此发表评论或编辑有趣的信息,我将不胜感激。

oop inheritance lua

0
推荐指数
1
解决办法
1388
查看次数

缩小差异?

所以我试图创建一个 python 脚本来为 MMF2+Lua 制作的游戏生成一个关卡,但我遇到了一些我不知道如何修复的问题。
生成一个带有游戏边框的 16x16 空关卡会给出以下结果(缩小):
78 5E 63 20 0A FC 27 00 40 86 8C AA C1 1D 02 23 3D 7C 08 27 32 00 9F 62 FE 10
它应该是一个扁平的 18x18 数组,其边缘具有0x00,其余部分具有0xFF
我的 python 脚本使用完全相同的输入生成此数据zlib.deflate
78 9C 63 60 20 06 FC 27 00 46 D5 8C AA C1 A7 86 30 00 00 9F 62 FE 10
它们是不同的,但膨胀它们会给出相同的数据。但是,当我将数据放入游戏时,尝试加载关卡时它崩溃了。
这两个值之间到底有什么不同,我可以修复它吗?

python lua zlib deflate

0
推荐指数
1
解决办法
102
查看次数

Vim / Neovim 当你有 lua 函数时为什么要使用自动命令?

我对 vim 有一些经验,但我的大部分时间都花在 neovim 上玩 lua (尽管我仍然不是初学者)。我错过了 vimscript 自动命令的魔力,我看到很多人都在使用它,我想知道为什么不直接写一个 lua 函数,比如......

function OpenTerm()
  vim.cmd("bel split")
  vim.cmd("terminal")
  vim.cmd("setlocal nonumber norelativenumber")
end
Run Code Online (Sandbox Code Playgroud)

而不是写一个 autocmd ?

vim lua neovim

0
推荐指数
1
解决办法
3083
查看次数

多个脚本和Lua线程的问题

当我有两个具有相同功能名称和参数的脚本在不同的线程中运行时,支持不同的环境,第二个线程最终覆盖第一个线程的定义,第一个线程的状态被垃圾收集!

// My thread instancing function
lua_State* LuaInstance::RunInstance(const std::string& fileName)
{
  lua_State* L = lua_newthread(m_state); 

  // Give new thread it's own global table
  lua_newtable(L);
  lua_newtable(L);
  lua_pushliteral(L, "__index");
  lua_pushvalue(L, LUA_GLOBALSINDEX);  // Original globals
  lua_settable(L, -3);
  lua_setmetatable(L, -2);
  lua_replace(L, LUA_GLOBALSINDEX);    // Replace LB's globals

  // Run script off new thread
  luaL_dofile(L, fileName.c_str());

  return L;
}
Run Code Online (Sandbox Code Playgroud)

我基本上试图得到它,以便我可以调用这样的多个脚本(对于游戏引擎):

-- Script 1
function Init(self)
  -- Do some stuff
end


-- Script 2
function Init(self)
  -- Do some other stuff
end
Run Code Online (Sandbox Code Playgroud)

scripting lua multithreading

-1
推荐指数
1
解决办法
928
查看次数

使用Lua订购号码

我正在努力寻找一组数据的中位数,模式,平均值和范围.使用编程很容易找到平均值; 但是中位数,模式和范围要求数字按顺序排列(从最小到最大).

此外,我正在尝试组装它,以便它返回我需要制作盒子和胡须图的数据.(不是全部,只是基本的).

现在我只是在做这个:将数字排序到表中(函数将返回)

QWERTYUIOP [] \

好的,这是主要问题:我该怎么做?

这就是我正在运行的:

function Order_Numbers(Data_Set, Greatest_Integer, Least_Integer)
local Ordered = {} --Give a place for the numbers to go
for i=Least_Integer, Greatest_Integer do --Start from the lowest value, continue to highest.
table.insert(Ordered, Data_Set[i])
end
return Ordered
end
Run Code Online (Sandbox Code Playgroud)

但它不起作用!有人有想法吗?

lua

-1
推荐指数
1
解决办法
1403
查看次数