Lua Script - 脚本请求

时间:2014-02-21 17:33:13

标签: lua

有人可以帮助我使用以下脚本吗?

function fffFunction(nnn)

end

fffFunction("gor")
fffFunction("ggg")
fffFunction("lle")
fffFunction("trw")
fffFunction("int")
fffFunction("ctr")
fffFunction("gsv")
fffFunction("gmd")
fffFunction("kll")

完成脚本,预期输出我希望如下:

lle
ctr
kll

如果您不理解,请随意评论您想要尝试的测试输入,我将运行它唯一运行的功能是在3日,6日,和第9行。

编辑:

我试过

function fffFunction (nnn)
    print(nnn[3]) 
    print(nnn[6]) 
    print(nnn[9])
end

但是预期的输出只是:nil nil nil nil nil nil nil nil nil。然后我试着这样做:

function fffFunction (nnn)
    ff={nnn} 
    print(ff[3]) 
    print(ff[6]) 
    print(ff[9]) 
end

但是我得到了一些奇怪的数字和字母,例如:“table:foi0239023jr”,以及我想要打印的其他功能。

4 个答案:

答案 0 :(得分:1)

我认为这就是你想要的:

data={}
function fffFunction(nnn)
  table.insert(data,nnn)
end
function output()
  for i=1,#data do
    if (i==3 or i==6 or i==9) then
      print(data[i])
    end
  end
end

fffFunction("gor")
fffFunction("ggg")
fffFunction("lle")
fffFunction("trw")
fffFunction("int")
fffFunction("ctr")
fffFunction("gsv")
fffFunction("gmd")
fffFunction("kll")
output()

答案 1 :(得分:0)

请查看coroutine以更好地理解代码。

ideia跟踪函数调用之间的索引,因此,创建一个协程!

co_counter = coroutine.create(function ()                                                                                                                                                                      
    local i = 0 
    while true do
        i = i + 1 
        coroutine.yield(i)
    end 
end)

function fffFunction(nnn)
    local _, count = coroutine.resume(co_counter)
    if count % 3 == 0 then
        print (nnn)
    end 
end 

fffFunction("gor")
fffFunction("ggg")
fffFunction("lle")
fffFunction("trw")
fffFunction("int")
fffFunction("ctr")
fffFunction("gsv")
fffFunction("gmd")
fffFunction("kll")

答案 2 :(得分:0)

您正在调用该函数9次,每次使用不同的字符串,因此每次调用fffFunction时nnn都是不同的字符串。字符串不支持下标[]操作。在第一次尝试时,该函数每次调用时都会打印3个nils(在不同的行上)。在第二次尝试中,您创建了一个包含一个元素的表,即字符串。然后ff [3]获取表的第3个元素,因为没有,所以为零。当你得到“table:weird chars”输出时,你可能会打印(ff)。

如果您按照列出的顺序调用它,以下内容将生成您列出的所需输出:

function fffFunction(nnn)
    if nnn == "lle" or nnn == "ctr" or nnn == "kll" then
        print(nnn)
    end
end

答案 3 :(得分:0)

if (this.id = "1")