- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 lua 代码片段(使用 cairo)
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
感谢所有修复此代码的建议。
关于错误 : attempt to call a nil value (field 'getn' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47846884/
我正在尝试使用table.getn获取Lua中数组的长度。我收到此错误: The function table.getn is deprecated! (在 Transformice Lua 中) 最
根据javaDoc , MongoDB-java 中WriteResult 类的getN() 方法返回操作中更新的文档数。但它总是返回零,即使文档插入正确。 为什么会这样?还是我理解错了? 最佳答案
本文整理了Java中org.xbill.DNS.Zone.getNS()方法的一些代码示例,展示了Zone.getNS()的具体用法。这些代码示例主要来源于Github/Stackoverflow/M
我正在使用带有 Java API 的 MongoDB 编写一些 Java 代码,但我不确定 Javadoc 的某些部分。 在多线程上下文中,我使用 DBCollection.html#update(c
我已将 Lua 嵌入到我的 C 应用程序中,并试图弄清楚为什么要通过以下方式在我的 C 代码中创建一个表: lua_createtable(L, 0, numObjects); 并返回到 Lua,当我
我有以下 lua 代码片段(使用 cairo) cairo_set_source_rgba(cr, COLOR_FONT_R, COLOR_FONT_G, COLOR_FONT_B, 1) ca
当#table_name返回非0值时?再说一遍,当 table.getn(table_name) 确实返回非 0 值时? 最佳答案 仔细阅读手册: 2.5.5 - The Length Operato
在 Logitech API 为 5.4 Lua 版本更新后,table.getn 被弃用了,一些帮助我的人说我可以用 # 更新代码,但代码 的 逻辑似乎不再适用于 _6790已尝试对代码进行一些变通
我是一名优秀的程序员,十分优秀!