gpt4 book ai didi

c - 如何设计更正的lua程序?

转载 作者:太空宇宙 更新时间:2023-11-04 02:02:08 24 4
gpt4 key购买 nike

我是lua新手,有个问题困扰了我好几天。

例如,在c语言中,我有一个结构如下:

struct userinfo{
int id,
char *name,
int age
}

如果我想定义不同用户的信息,我可以这样做:

struct userinfo user1;
struct userinfo user2;

但是在lua中,我不知道如何正确的实现这个功能。我想我可以这样做:

local userinfo = {}

function userinfo.new(param)
local self = {id = param.id, name = param.name, age = param.age}
return self
end

return userinfo

local info = require "userinfo"
local user1 = info.new({id = 1, name = "xxx", age = 20})
local user2 = info.new({id = 2, name = "yyy", age = 20})

这看起来满足了我的需求,但感觉很奇怪。

我想知道如何使用 lua 自己的方式而不是 c 来设计程序。

请给我看代码,或者提供一些文档。非常感谢!

最佳答案

您可以避免创建临时表来传递参数。这将使用更少的内存并且速度更快。

local userinfo = {}

function userinfo.new(id, name, age)
return {id = id, name = name, age = age}
end

return userinfo

---

local info = require "userinfo"
local user1 = info.new(1, "xxx", 20)
local user2 = info.new(2, "yyy", 20)

但是请注意,在 Lua 中,只使用原始表是完全可以的。以下是完全可以接受的(也是最快的解决方案):

local user1 = {id = 1, name = "xxx", age = 20}
local user2 = {id = 2, name = "yyy", age = 20}

关于c - 如何设计更正的lua程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25967000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com