【问题标题】:Access dictionary key value with variable in LUA使用 LUA 中的变量访问字典键值
【发布时间】:2021-08-25 20:34:38
【问题描述】:
local function Numeral(roman) 
  local symbols = {}
  
  local sum = 0

  for i = 1,#roman do
     local val = roman:sub(i,i)
     sum = sum + symbols[val]
  end
  
  return sum
end

print(Numeral('II'))

基本上,我正在制作一个罗马数字到数字的转换器。我想要做的是访问带有变量的字典中的键

local var = 'I'
local something = dictionary.var

但就我所做的而言,它可能会更复杂一些。有可能吗?

【问题讨论】:

  • 只需在数组中创建一个字典,其中索引是单词

标签: dictionary variables lua roman-numerals


【解决方案1】:

当使用罗马数字表时,使用__index 中的table 函数的元表会使事情变得更容易。
这个例子说明了我的意思......

> _VERSION
Lua 5.4
> romans=setmetatable({},{__index=table})
> romans:insert('I')
> romans:insert('II')
> romans:insert('III')
> romans:insert('IV')
> romans:insert('V')
> romans:insert('VI')
> romans:insert('VII')
> romans:insert('VIII')
> romans:insert('VIIII')
> romans:insert('X')
> romans:concat(', ',1,10)
I, II, III, IV, V, VI, VII, VIII, VIIII, X

(在交互式 Lua 控制台中完成 (lua -i))

有关从罗马数字转换为罗马数字的更多信息,您还可以阅读...
https://gist.github.com/efrederickson/4080372
但请注意,它并非没有错误。
你可以做得更好;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2012-03-23
    相关资源
    最近更新 更多