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

Sind anonyme Go-Strukturfelder öffentlich oder privat?

WBOY
WBOYnach vorne
2024-02-05 23:30:12814Durchsuche

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
}

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

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

package p

type t struct {
  string
}
package main

import "testmod/p"

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen