首页 > 解决方案 > 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
> 

标签: luaembedded-linuxyocto

解决方案


推荐阅读