LittleFlyDragon 发表于 2022-12-13 10:09

【lua语言】语法不熟,各位大佬帮我看看这个是什么原因

使用了一个函数F
不知道函数原型是怎么样的

用一个变量接住了函数的返回值
然后打印返回值
代码如下:
x = F(0x01)
print(x)

打印结果为:
{size=9.000000 ={=1.000000 =3.000000 =4.000000 =0.000000 =0.000000 =78.000000 =70.000000 =78.000000 =97.000000},}

问题如下:
想问问这个是x是什么类型的 数组?表?还是什么呢
能把x的原型写出来吗,为什么print可以打印出这样格式的数据
先谢谢各位大佬了~

armcha1r 发表于 2022-12-13 10:09

print行为可以通过__tostring重载,所以x不一定是table,可以通过type函数确定x的类型。
如果x是table类型,可以打印键值对来获取原型:
for k,v in pairs(x) do print(k,v) end

boxer 发表于 2022-12-13 10:38

是的, 是一个表

LittleFlyDragon 发表于 2022-12-13 11:33

本帖最后由 LittleFlyDragon 于 2022-12-13 11:35 编辑

armcha1r 发表于 2022-12-13 10:27
print行为可以通过__tostring重载,所以x不一定是table,可以通过type函数确定x的类型。
如果x是table类型 ...
打印结果是:
size9 buf={=1.000000 =3.000000 =4.000000 =0.000000 =0.000000 =78.000000 =70.000000 =78.000000 =97.000000}

值得注意的是,后面的逗号没有了

armcha1r 发表于 2022-12-13 12:42

LittleFlyDragon 发表于 2022-12-13 11:33
打印结果是:
size9 buf={=1.000000 =3.000000 =4.000000 =0.000000 =0.000000 =78. ...

那可能x就是一个数组结构,定义类似于
x = {
    size = 9,
    buf = {1,2,3,4}
}
页: [1]
查看完整版本: 【lua语言】语法不熟,各位大佬帮我看看这个是什么原因