一个修改列表中所有元素的一行代码?

我正在寻找一个与 Python 等效的 Lua 代码(如果可能):

>>> ["prefix" + suffix for suffix in ["1","2","3"] ]
['prefix1', 'prefix2', 'prefix3']

这是我目前得到的 Lua 代码,我想知道是否有更简洁的方式来编写这个代码:

function foo (prefix, suffices)
  local newList = {}
  for k,v in pairs(suffices) do
    table.insert(newList, prefix .. v)
  end
  return newList
end

a = foo( "prefix", {"1","2","3"} );
点赞
用户7762387
用户7762387
没有更短的方法来完成这件事。
function prepend_prefix(prefix, suffices)
  local newList = {}
  for _,v in ipairs(suffices) do
    newList[#newList+1] = string.format("%s%s", prefix, v)
  end
  return newList
end

那么为什么你要保留每个项的冗余前缀呢?为什么不使用一些“特殊”的表(模型)将其包装,并公开一个get方法来为您添加前缀?

事实是,当你保留不同的字符串(无论它们是否几乎相同),你的内存使用量会增加。

2020-10-08 10:39:16