lua错误:尝试调用nil值(字段'getn')

用户名

我有以下lua代码段(使用开罗)

 cairo_set_source_rgba(cr, COLOR_FONT_R, COLOR_FONT_G, COLOR_FONT_B, 1)
  cairo_set_font_size(cr, 0.011 * WINDOW_HEIGHT)
  local ps_str = conky_parse("${exec ps -Ao comm,pcpu,%mem  --sort=-pcpu | head -n 15}")
  local processes = {}
  for line in string.gmatch(ps_str, '([^\n]+)') do
    table.insert(processes, line)
  end
  for line = 1,table.getn(processes) do
    cairo_move_to(cr, 0.213 * WINDOW_WIDTH, 0.443 * WINDOW_HEIGHT + line * 0.014 * WINDOW_HEIGHT)
    cairo_show_text(cr, processes[line])
  end
  cairo_stroke(cr)

但是,当我通过conky运行它时,出现以下错误(这是一行,末尾有5行)。

我收到错误消息:尝试调用nil值(字段“ getn”)

我尝试了这里建议的一些方法,但是我不确定如何解决此问题,因此想知道是否有简单的解决方法。

注释中建议的解决方案对以上情况效果很好,但不适用于以下情况:

function conky_geo_dotspiral(cx_str, cy_str, ...)
  local cx = conky_to_num(cx_str)
  local cy = conky_to_num(cy_str)
  local arms = math.ceil(24 / table.getn(arg)) * table.getn(arg)
  local rows = 10
  local radius0, radius1 = 50, 140
  local dotradius = 4
  for i,v_str in ipairs(arg) do
    v = conky_to_num(conky_parse(v_str))
    for j = i-1, arms - 1, table.getn(arg) do
      local p = j / arms
      for k = 0, v / rows  do
        local dx = cx + (radius0 + (radius1-radius0) * k/rows) * math.cos(p * 2*math.pi + k * math.pi/arms)
        local dy = cy + (radius0 + (radius1-radius0) * k/rows) * math.sin(p * 2*math.pi + k * math.pi/arms)
        cairo_arc (cr, dx, dy, dotradius, 0, 2 * math.pi)
        cairo_fill(cr)
      end
    end
  end
end

我得到错误:

尝试调用nil值(字段“ getn”)

我尝试用#arg替换table.getn(arg),但仍然收到错误。

conky: llua_do_call: function conky_geo_dotspiral execution failed: conky_geometry.lua:155: attempt to get length of a nil value (global 'arg')
用户名

这是固定的代码段:

  cairo_set_source_rgba(cr, COLOR_FONT_R, COLOR_FONT_G, COLOR_FONT_B, 1)
  cairo_set_font_size(cr, 0.011 * WINDOW_HEIGHT)
  local ps_str = conky_parse("${exec ps -Ao comm,pcpu,%mem  --sort=-pcpu | head -n 15}")
  local processes = {}
  for line in string.gmatch(ps_str, '([^\n]+)') do
    table.insert(processes, line)
  end
  for line = 1,#processes do
    cairo_move_to(cr, 0.213 * WINDOW_WIDTH, 0.443 * WINDOW_HEIGHT + line * 0.014 * WINDOW_HEIGHT)
    cairo_show_text(cr, processes[line])
  end
  cairo_stroke(cr)

第二个问题固定的代码段是:

function conky_geo_dotspiral(cx_str, cy_str, ...)
  local cx = conky_to_num(cx_str)
  local cy = conky_to_num(cy_str)
  local arms = math.ceil(24 / #arg) * #arg
  local rows = 10
  local radius0, radius1 = 50, 140
  local dotradius = 4
  for i,v_str in ipairs(arg) do
    v = conky_to_num(conky_parse(v_str))
    for j = i-1, arms - 1, #arg do
      local p = j / arms
      for k = 0, v / rows  do
        local dx = cx + (radius0 + (radius1-radius0) * k/rows) * math.cos(p * 2*math.pi + k * math.pi/arms)
        local dy = cy + (radius0 + (radius1-radius0) * k/rows) * math.sin(p * 2*math.pi + k * math.pi/arms)
        cairo_arc (cr, dx, dy, dotradius, 0, 2 * math.pi)
        cairo_fill(cr)
      end
    end
  end
  return ''
end

感谢您提供解决此代码的所有建议。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试调用 nil 值(字段“maxn”)错误

Lua尝试调用字段“ PlayFile”(nil值)

MongoDB Java API:WriteResult#getN()

lua尝试调用方法“ len”(nil值)

Lua错误尝试索引全局nil值

table.getn已过时-如何获取数组的长度?

错误main.lua:138:尝试调用方法“ checkCollision”(nil值)

LUA嵌入C ++ socket.http中[错误:尝试调用nil值]

错误main.lua:45:尝试调用全局'distanceFormula'(nil值)

Lua脚本引发错误“试图调用nil值(字段'deposit')”

Lua麻烦:尝试调用全局“解压”(nil值)

Corona SDK(LUA)-尝试调用upvalue'spawnEnemy'(nil值)

Lua:尝试调用全局“ rectangle_draw”(nil值)

Splash API / lua错误:尝试索引本地元素(nil值)

如何解决“尝试调用方法'addMoney'(nil值)”错误?

尝试调用全局“ this”(nil值)

尝试调用字段“ defaultName”(字符串值)错误

ROBLOX LUA(u) 尝试在数据库上调用 nil 值

尝试将字段称为“读取”(nil值)

lua:尝试索引字段“?” (零值)

尝试调用方法“ func”(nil值)

尝试索引全局“矩形”(nil值)错误

Lua尝试致电nil

尝试在 roblox (lua) 中使用“名称”错误索引 nil

尝试索引字段“LocalPlayer”(一个 nil 值)

Lua-util_server.lua:440尝试索引本地'self'(nil值)

lua cjson编码nil字段

料滴尝试解码nil值会导致EOF错误

尝试索引全局“应用程序”(nil值)错误