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",而我想要的其他函数并未被打印。

点赞
用户3325265
用户3325265

为了更好地理解代码,请查看协同程序

这个想法是在函数调用之间跟踪索引,因此创建一个协程!

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")
2014-02-21 18:30:30
用户869951
用户869951

你调用了该函数九次,每次传入不同的字符串,因此 nnn 在每次调用 fffFunction 时都是一个不同的字符串。字符串不支持下标操作[] 。在你第一次尝试中,该函数每次被调用都将打印 3 个 nil(分别在不同的行上)。在第二次尝试中,你创建了一个包含一个元素(字符串)的表。然后 ff[3] 获取表的第三个元素,但是因为该表没有第三个元素,所以返回 nil。当你看到"table: weird chars"的输出时,你可能已经打印了 ff

如果按照你列出的顺序进行调用,以下代码将产生所需的输出:

function fffFunction(nnn)
    if nnn == "lle" or nnn == "ctr" or nnn == "kll" then
        print(nnn)
    end
end
2014-02-21 20:13:07
用户2021575
用户2021575

我认为这是您想要的:

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()
2014-03-07 16:57:10
用户1847592
用户1847592
## 函数名: `fffFunction` 

### 参数: 
- `nnn`: 表示输入的参数。

### 函数描述: 
此函数将变量 `List` 赋一个默认值 `{print, type, type}`,并且往 `List` 列表中插入最后一个元素。然后执行 `List` 列表中第一个元素的函数并传入 `nnn` 参数。

### 代码: 

```lua
function fffFunction(nnn)
  List = List or {print, type, type}
  table.insert(List, table.remove(List, 1))
  List[1](nnn)
end

```

2015-12-24 19:17:11