2017-10-19 283 views
-3

我正在使用golang來構建一個web服務器。我正在使用MVC體系結構。
如何定義靜態成員函數?

現在我不知道如何使靜態成員函數。

例如,我有一個struct 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,這樣的功能應該是類User的靜態成員函數,在這種情況下,我們可以調用函數是這樣的:

User.listNames(); 

如何做同樣的事情在golang?

+4

「如何在golang中做同樣的事情?」你不能。在Go中只有_no_靜態成員函數,因爲沒有類。但你可能聽說過功能。 – Volker

回答

1

您只需編寫一個普通的功能,而不是一個成員函數:

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

當你的軟件包調用它,它只會是listUserNames()

當你的軟件包之外調用它,它會以您的包裹名稱爲前綴。 (此外,您必須公開該功能才能從另一個包中調用它)

相關問題