Backend-Entwicklung
Golang
Detaillierte Erläuterung der Strukturen und Methoden in der Go-Sprache
Detaillierte Erläuterung der Strukturen und Methoden in der Go-Sprache

Strukturen werden verwendet, um komplexe Datenstrukturen zu definieren und viele identische Feldattribute zu speichern
1 Definition von Strukturen und ihre Einfachheit und Praktikabilität
package main
import (
"fmt"
)
func main() {
type Student struct { //定义结构体
name string
age int
}
s1 := new(Student) // 定义指向结构体的指针
s1.name = "xiaomu"
s1.age = 10
fmt.Printf("name:%s\nage:%d\n", s1.name, s1.age)
}Dort Es gibt drei Möglichkeiten, eine Struktur zu definieren. Der obige Student-Typ ist beispielsweise wie folgt definiert:
①var s1 Student Definieren Sie direkt eine Strukturvariable im Speicher
②s1 := new( Student) Definieren Sie einen Zeiger auf die Struktur im Speicher
③s1 := &Student{} Gleiches wie oben
Erhalten Sie den gespeicherten Wert auf folgende Weise
①s1.name
②s1.name oder (*s1).name
③ Wie oben
2. Der „Konstruktor“ in struct heißt Es handelt sich um den Werksmodus, siehe Code
package main
import (
"fmt"
)
type Student struct { //声明结构体
Name string
Age int
}
func NewStudent(name string, age int) *Student { // 返回值指向Student结构体的指针
return &Student{
Name: name,
Age: age,
}
}
func main() {
s1 := NewStudent("xiaomu", 123) // 声明并且赋值指向Student结构体的指针
fmt.Printf("name: %s\nage: %d", s1.Name, s1.Age)
}3. Besondere Vorsichtsmaßnahmen! ! !
Die Struktur ist ein Werttyp und Sie müssen new verwenden, um Speicher zuzuweisen
4. Anonyme Felder, schauen Sie sich direkt den Code unten an
package main
import (
"fmt"
)
func main() {
type Class struct {
ClassName string
}
type Student struct { //定义结构体
name string
age int
Class // 定义匿名字段,继承了该结构体的所有字段
}
s1 := new(Student) // 定义指向结构体的指针
s1.ClassName = "xiaomu"
fmt.Printf("ClassName:%s\n", s1.ClassName)
}Strukturmethode
1. Methoden in struct definieren und
package main
import (
"fmt"
)
type Student struct { //定义结构体
name string
age int
}
func (stu *Student) OutName() { // 定义Student方法
fmt.Println(stu.name)
}
func main() {
s1 := new(Student) // 定义指向结构体的指针
s1.name = "xaiomu"
s1.OutName()
}Struktur erbt Struktur, in der alle Methoden der geerbten Struktur von der geerbten Struktur übernommen werden
package main
import (
"fmt"
)
type ClassName struct {
className string
}
func (cla *ClassName) OutClassName() {
fmt.Println(cla.className)
}
type Student struct { //定义结构体
name string
age int
ClassName // 继承ClassName结构体的所有
}
func (stu *Student) OutName() { // 定义Student方法
fmt.Println(stu.name)
}
func main() {
s1 := new(Student) // 定义指向结构体的指针
s1.className = "xiaomu"
s1.OutClassName()
}Mehr für entsprechendes Wissen beachten Sie bitte die Spalte Go-Sprach-Tutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Strukturen und Methoden in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Heiße KI -Werkzeuge
Undress AI Tool
Ausziehbilder kostenlos
Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos
AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.
Clothoff.io
KI-Kleiderentferner
Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!
Heißer Artikel
Heiße Werkzeuge
Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor
SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen
Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung
Dreamweaver CS6
Visuelle Webentwicklungstools
SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)
Heiße Themen
Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren?
Apr 02, 2025 pm 04:54 PM
Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...
Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden?
Apr 02, 2025 pm 05:09 PM
Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Bei der Verwendung von Goland für GO -Sprachentwicklung begegnen viele Entwickler benutzerdefinierte Struktur -Tags ...
Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly?
Apr 02, 2025 pm 02:09 PM
Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...
Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte?
Apr 02, 2025 pm 02:03 PM
Der Unterschied zwischen Stringdruck in GO -Sprache: Der Unterschied in der Wirkung der Verwendung von Println und String () ist in Go ...
Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt?
Apr 02, 2025 pm 04:12 PM
Welche Bibliotheken in GO werden von großen Unternehmen oder bekannten Open-Source-Projekten entwickelt? Bei der Programmierung in Go begegnen Entwickler häufig auf einige häufige Bedürfnisse, ...
Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet?
Apr 02, 2025 pm 02:06 PM
In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...
Muss ich einen Oracle -Client installieren, wenn ich mit GO eine Verbindung zu einer Oracle -Datenbank herstellen kann?
Apr 02, 2025 pm 03:48 PM
Muss ich einen Oracle -Client installieren, wenn ich mit GO eine Verbindung zu einer Oracle -Datenbank herstellen kann? Bei der Entwicklung in Go ist die Verbindung zu Oracle -Datenbanken eine übliche Anforderung ...
Wie kann man in Go -Programmierung die Verbindungsressourcen zwischen MySQL und Redis korrekt verwalten?
Apr 02, 2025 pm 05:03 PM
Ressourcenverwaltung in Go -Programmierung: MySQL und Redis Connect und Release, um zu lernen, wie Ressourcen korrekt verwaltet werden, insbesondere mit Datenbanken und Caches ...


