首页 > 解决方案 > 如何在lua函数中允许两种不同格式的参数?

问题描述

我有一个接受表(多维数组)作为参数的函数。我想将其更改为接受多种格式的参数。

这是功能。

matrix.deter({{3,4,5},{2,4,6},{7,8,10}})

这工作正常。但我想改变它甚至接受这个论点

matrix.deter({(3,4,5),(2,4,6),(7,8,10)})

所以以下两个都会给出相同的输出。

matrix.deter({{3,4,5},{2,4,6},{7,8,10}})

matrix.deter({(3,4,5),(2,4,6),(7,8,10)})

换句话说,内部数组在圆括号中而不是花括号中。是否有可能做到这一点?

标签: stringfunctionluaargumentslua-table

解决方案


你可以使用一个函数。

local function m(...) return {...} end

matrix.deter(m(3,4,5), m(2,4,6), m(7,8,10))

或者一个字符串

matrix.deter({"(3,4,5)", "(2,4,6)", "(7,8,10)"})

如果您使用的是数字列表,那么两者都没有多大意义。

你不能仅仅因为你不喜欢它们的外观就改变 Lua 的标记。你必须找到另一种方法。


推荐阅读