Heim > Backend-Entwicklung > Golang > Sind anonyme Go-Strukturfelder öffentlich oder privat?

Sind anonyme Go-Strukturfelder öffentlich oder privat?

WBOY
Freigeben: 2024-02-05 23:30:12
nach vorne
913 Leute haben es durchsucht

Go 结构匿名字段是公共的还是私有的?

Frageninhalt

Wie wir alle wissen, sind Felder, die mit Großbuchstaben beginnen, öffentliche Felder und Felder, die mit Nicht-Großbuchstaben beginnen, private Felder. Golang unterstützt aber auch anonyme Felder. Zum Beispiel:

type myType struct {
  string
}
Nach dem Login kopieren

Diese Felder sind zum Einbetten vorgesehen. Aber ist dieser Bereich öffentlich oder privat?


Richtige Antwort


Wenn der Typname eines eingebetteten Typs in Kleinbuchstaben geschrieben ist, ist das Paket sichtbar. Zum Beispiel:

type t struct {
    string
}

func main() {
    x := t{}
    x.string = "a"
    fmt.println(x)
}
Nach dem Login kopieren

Wenn Sie jedoch t 移动到另一个包 p eingeben:

package p

type t struct {
  string
}
Nach dem Login kopieren
package main

import "testmod/p"

func main() {
    x := p.T{}
    x.string = "a" // Error
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSind anonyme Go-Strukturfelder öffentlich oder privat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage