如何定义静态成员函数?

How do I define a static member function?

我正在使用 golang 构建网络服务器。我正在使用 MVC 架构。

现在我不知道如何制作静态成员函数

例如,我有一个结构 User 作为我的模型之一:

type User struct{
    name string
    password string
}

显然,我还需要以下功能:

func (user User)addUser(){
    conn := ConnToDB()
    query = "insert into user (name, password) values ('" + user.name + "', '" + user.password + "');"
    conn.execute(query)
}
func (user User)changeNameById(id int){
    ...
}

但是,我不知道如何制作一个列出所有名字的函数。在Java或Python中,这样的函数应该是classUser的静态成员函数,此时我们可以这样调用函数:

User.listNames();

如何在golang中做同样的事情?

你只需写一个普通函数,而不是成员函数:

func listUserNames() []string {
    ...
}

当从你的包中调用它时,它只是 listUserNames()

当从你的包外调用它时,它会以你的包名作为前缀。 (此外,您必须创建函数 public 才能从另一个包中调用它)