请教大牛,lua的一段代码,不太懂为什么会这样

kyx 发布于 2013/03/06 22:06
阅读 1K+
收藏 0
Lua
local index = 10000

local function sub(v)
	v=v-1;
	print(v)
end

while index>999 do
	sub(index)
end
我这边不太明白的是为什么print出来的一直都是9999
加载中
0
h2ero
h2ero
v是局部变量,没有返回赋值给index
乌龟壳
乌龟壳
table,userdata,lightuserdata传引用,其它传值
k
kyx
lua也分形参和实参吗?
0
乌龟壳
乌龟壳
local index = 10000

local function sub(v)
    return v - 1
end

while index > 999 do
    print(index)
    index = sub(index)
end
k
kyx
嗯,我知道这样可以解决,我知识对这个问题比较疑惑
0
wonder.wj
wonder.wj

lua中只有table是引用传递,其他都是值传递,所以在函数中不能改变外部的index值。

如果是table的话就可以在函数内部修改

返回顶部
顶部