lua - lua table.sort 因“尝试将 nil 与字符串进行比较”而崩溃
问题描述
我正在尝试在嵌入式 linux 设备上使用 lua。table.sort
给出一个有线错误attempt to compare nil with string
。我将这段代码准确地绑定在我的本地 lua 解释器上,并且它有效。什么可能导致这种行为?嵌入式 lua 是通过yocto
.
# lua
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
> a={}
> a[#a+1]="foo"
> a[#a+1]="baar"
> a[#a+1]="baar_1"
> a[#a+1]="baar_2"
> print(a[0])
nil
> print(#a)
4
> for i=0,#a do print (a[i])
>> end
nil
foo
baar
baar_1
baar_2
> table.sort(a)
attempt to compare nil with string
stack traceback:
[C]: in function 'table.sort'
stdin:1: in main chunk
[C]: in ?
> table.sort(a, function(x,y) print(x); print(y); return x < y end)
foo
baar_2
nil
baar_2
stdin:1: attempt to compare nil with string
stack traceback:
stdin:1: in function <stdin:1>
[C]: in function 'table.sort'
stdin:1: in main chunk
[C]: in ?
> for key, val in pairs(a) do print(key, val) end
1 foo
2 baar
3 baar_1
4 baar_2
>
- (更新#1添加打印)
- (更新 #2 将打印添加到 table.sort)
- (更新 #3 添加了对 key/val 的循环)
解决方案
推荐阅读
- django - 如何将标签网址添加到 sitemap.xml?
- amazon-web-services - 使用 s3 作为数据库而不是 dynamodb
- javascript - Chrome 扩展程序:无法获取背景以将消息发送到内容脚本
- numpy - 避开障碍物时路径优化错误
- angularjs - 在自定义指令模板中使用 ng-if 导致无法将调整大小事件绑定到元素
- nginx - NGINX 反向代理和 swagger-ui.html
- python - 将字符串文件加载为 json 文件
- java - 如何在 HYBRIS 中为我的自定义员工设置客户支持视角?
- google-compute-engine - 从模板构建的 Google Cloud Compute Engine 实例不会更改区域
- kubernetes - kubelet 错误跳过 pod 同步 - 容器运行时已关闭