Lua:在返回表的函数之后我可以使用逗号吗?

时间:2017-09-01 00:22:11

标签: function lua lua-table

所以我的Lua代码看起来像这样:

function makeTable()
    return {1,2,3}
end

table = {
    makeTable(),
    {4,5,6}
}

table的结果应为{{1, 2, 3}, {4, 5, 6}}

我关注makeTable()之后的逗号。这在Lua中对于返回表的函数是有效的,还是有更好的方法让函数返回表是表的第一项?

4 个答案:

答案 0 :(得分:1)

有效。您的代码是否存在任何问题或您正在尝试精确实现的内容?或者,如果您愿意,您可以这样做:

function makeTable()
    return {{1,2,3}}
end

t = maketable()
table.insert(t, {4,5,6})

答案 1 :(得分:0)

完全有效function getWeekStartEnd(date) { // Copy date so don't modify original date = date? new Date(+date) : new Date(); // Set time to 0 and copy date at same time var startDate = new Date(date.setHours(0,0,0,0)); // Set startDate to previous Sunday startDate.setDate(startDate.getDate() - startDate.getDay()); // Set endDate to next Saturday var endDate = new Date(+date); endDate.setDate(endDate.getDate() + 6 - endDate.getDay()); return [startDate, endDate]; } // Current week getWeekStartEnd().forEach(function(d){ console.log(d.toString()); }); // For Friday 1 September, 2017 getWeekStartEnd(new Date(2017,8,1)).forEach(function(d){ console.log(d.toString()); }); // For Sunday 3 September, 2017 getWeekStartEnd(new Date(2017,8,3)).forEach(function(d){ console.log(d.toString()); });。尝试将其添加到代码的底部:

Lua

你会看到它打印出来:io.write("{") for i,v in ipairs(table) do io.write("{") for j,m in ipairs(v) do io.write(m) io.write(",") end io.write("},") end print("}")

您正在向2D阵列添加数组。

答案 2 :(得分:0)

你可以这样做。但我想这会更清洁:

function makeTable()
    return {1,2,3}
end

local t = {}
table.insert(t, makeTable())
table.insert(t, {4, 5, 6})

答案 3 :(得分:0)

这是100%罚款。

你写的那个"在一个函数之后用逗号看起来很奇怪"。好吧,那个逗号与表表达式中的逗号完全一样:它将一个表值与下一个表值分开。

换句话说,{ makeTable(), {4,5,6} }{1,2}完全相同,只是它makeTable()代替1,而{4,5,6}代替2 long tenHoursInMillis = 36000000; long dateVOMillis = someVO.getDate().getTime(); long dateSysMillis = System.currentTimeMillis(); if(dateSysMillis - dateAMillis > tenHoursInMillis) { // do something } else if(dateSysMillis - dateAMillis < tenHoursInMillis) { // do something else } // do something when they're equal