Erstellen Konstruktoren in Golang
-
Verwenden Sie die
init
Funktion um Konstruktoren in Golang zu erstellen -
Die Funktion
struct
zum Erstellen von Konstruktoren in Golang verwenden
Go ist keine objektorientierte Sprache im gleichen Sinne wie Java. Konstruktoren sind kein Standardsprachfeature.
Bei der Entwicklung von Go-Programmen sollten Sie modulare Komponenten konstruieren, die nur schwach miteinander verbunden sind. Dieser Artikel befasst sich mit der Erstellung von Konstruktoren in Golang mit verschiedenen Funktionen.
Verwenden Sie die init
Funktion um Konstruktoren in Golang zu erstellen
Es gibt keine Standardkonstruktoren in Go, aber Sie können Funktionen für jeden Typ definieren. In diesem Beispiel erstellen wir Konstruktoren mit der Funktion init
.
package main
import "fmt"
type Thing struct {
Name string
Num int
}
func (t *Thing) Init(name string, num int) {
t.Name = name
t.Num = num
}
func main() {
t := new(Thing)
t.Init("Hello Boss!", 99)
fmt.Printf("%s: %d\n", t.Name, t.Num)
}
Ausgabe:
Hello Boss!: 99
Die Funktion struct
zum Erstellen von Konstruktoren in Golang verwenden
Wir geben den Namen und das Alter des Mitarbeiters mit der struct
-Funktion dieses Beispiels an.
package main
import "fmt"
type Employee struct {
Name string
Age int
}
func (e *Employee) Init(name string, age int) {
e.Name = name
e.Age = age
}
func main() {
emp := new(Employee)
emp.Init("Jay Singh", 23)
fmt.Printf("%s: %d\n", emp.Name, emp.Age)
}
Ausgabe:
Jay Singh: 23
Ein weiteres Beispiel ist die Konstruktormethode newUser
im Beispiel, die ein neues User struct
erzeugt. Die Funktion gibt einen Zeiger auf die neu erstellte Struktur zurück.
package main
import "fmt"
type User struct {
firstName string
lastName string
email string
}
func newUser(firstName string, lastName string, email string) *User {
user := User{firstName, lastName, email}
return &user
}
func main() {
user := newUser("Jay", "Singh", "jayexamplesingh@gmail.com")
fmt.Println("firstName:", user.firstName)
fmt.Println("lastName:", user.lastName)
fmt.Println("email:", user.email)
}
Ausgabe:
firstName: Jay
lastName: Singh
email: jayexamplesingh@gmail.com