使用 Lua 创建地址簿

我正在尝试使用 Lua 创建地址簿。

我目前有三个表格(仅作为示例)

Tab1 = {1, 2, 3}

Tab2 = {John, Mark, Cassie}

Tab3 = {123 , 456, 789}

我希望能够向用户显示姓名列表,然后当用户点击姓名时,返回相应的值。

例如:用户选择 Mark,程序将返回 "Contact = 2"

"Number = 456"

点赞
用户2858170
用户2858170

首先,除非你在其他地方给变量分配了值,否则约翰(John), 马克(Mark)和卡西(Cassie)都是 nil。如果你想在表中拥有这些名字,就必须使用字符串。

Tab2 = {"John", "Mark", "Cassie"}

否则你的表 Tab2 将为空。

当然,Tab1、Tab2 和 Tab3 不是很聪明的变量名,因为它们没有给出内容的提示。例如,你可以将它们命名为 names、numbers 和 contacts。

然后你需要思考如何将表之间的信息链接起来。

有很多方法可以做到这一点。

如果我们坚持你的示例,那么你需要在 Tab2 中搜索 "Mark",获取索引,然后使用该索引从其他表中获取信息。

local selectedName = "Mark"
for i,v in ipairs(Tab2) do

  if v == selectedName then
   print("Contact = " .. Tab1[i])
   print("Number = " .. Tab3[i])
  end

end

当然这不是一个很好的解决方案。

另一种简单的方法是将每个号码存储在一个以名称为键的表中。

local numbers = {"John" = 123, "Mark" = 456, "Cassie" = 789}

然后,你可以简单地这样做:

print(numbers["Mark"])

或者将所有信息分组。

local contacts = {}
contacts["Mark"] = {hairColour = "blond" ,number = 456}

然后你可以这样做:

print(contacts["Mark"].hairColour)
print(contacts["Mark"].number)

这仍然不是一个很好的解决方案,只是为了向你展示一些基本的内容。

确保你完成一些教程并阅读一些书籍和 Lua 参考手册。这样你就会知道什么是可能的。

例如,Lua 允许模仿面向对象编程,这在这里可以使用。或者你可以使用外部库将所有内容放入数据库中...

天空就是极限。

我无法就 "点击" 名字给你任何建议,因为原生 Lua 不支持这个功能。你需要使用库来创建 GUI,比如 wxLua。

对于一个简单的程序,你可以从控制台应用程序开始,或者将用户输入硬编码到你的脚本中。

2017-05-18 08:20:17