2017-10-19 6 views
-3

Ich verwende Golang, um einen Webserver zu erstellen. Und ich benutze die MVC-Architektur.
Wie definiere ich eine statische Elementfunktion?

Jetzt weiß ich nicht, wie man die statische Elementfunktion macht.

Zum Beispiel habe ich eine Struktur User als eine meiner Modelle:

type User struct{ 
    name string 
    password string 
} 

Offensichtlich brauche ich auch die Funktionen wie folgt:

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){ 
    ... 
} 

Aber ich don Ich weiß nicht, wie man eine Funktion zum Auflisten aller Namen erstellt. In Java oder Python, eine solche Funktion sollte eine statische Memberfunktion der Klasse User, in diesem Fall werden wir die Funktion wie folgt aufrufen können:

User.listNames(); 

Wie das Gleiche in golang zu tun?

+4

"Wie macht man dasselbe in Golang?" Du kannst nicht. Es gibt einfach _are_ _no_ static member in Go, da keine Klassen vorhanden sind. Aber Sie haben vielleicht von Funktionen gehört. – Volker

Antwort

1

Sie schreiben einfach eine reguläre Funktion, kein Mitglied Funktion:

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

Wenn es von Ihrem Paket aufrufen, wird es einfach sein listUserNames()

Wenn es von außerhalb des Pakets aufrufen, wird es Präfix durch den Namen Ihres Pakets. (Sie müssen die Funktion auch öffentlich machen, um sie von einem anderen Paket aus aufzurufen.)

Verwandte Themen