Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen der zugeordneten Schnittstelle {} und der Typstruktur {}?

Was ist der Unterschied zwischen der zugeordneten Schnittstelle {} und der Typstruktur {}?

WBOY
WBOYnach vorne
2024-02-06 09:00:05893Durchsuche

Was ist der Unterschied zwischen der zugeordneten Schnittstelle {} und der Typstruktur {}?

Frageninhalt

Ich habe gerade gelesen, dass „map[Type]interface{} eine Zuordnung von Schlüsseln vom Typ „Type“ mit dem Wert „any“ angibt, also „interface{}“.

Ist das nicht fast dasselbe wie das Definieren einer Struktur, d. h. Typ Name struct{ key1; value1, ...., keyn: valuen}?

Was ist der Unterschied zwischen diesen beiden Arten der Zuordnung?

Ich habe https://www.digitalocean.com/community/tutorials/how-to-use-json-in-go gelesen, aber ich verstehe den Unterschied immer noch nicht.

Oder was ist der Unterschied zwischen map[type] interface{}, das wir allgemeiner definieren?

Wir definieren jedes Schlüssel-Wert-Paar durch die Struktur?

Definieren beide Methoden nur Objekte, die aus Schlüssel-Wert-Paaren bestehen?


Richtige Antwort


Strukturen und Karten sind unterschiedliche Datenstrukturen. Sie haben viele Unterschiede. Hier sind nur einige davon:

Strukturen haben eine feste Anzahl von Feldern, die einmalig deklariert werden und nicht geändert werden können.

3a15cefd8a1cc7ac8a7f27a0d3f9b13

Karte kann zur Laufzeit wachsen oder schrumpfen.

vector := map[string]float64{
    "x": 2.0,
    "y": 2.0,
}

vector["z"] = 2.0

Sie können Karteneinträge durchlaufen.

for key, val := range vector {
    fmt.Println(key, val)
}

Strukturen unterstützen keine Iteration (es sei denn, Sie verwenden Reflektion).

Strukturfelder können Beschriftungen (zusätzliche Attribute) haben:

type User struct {
    Name          string    `json:"name"`
    Password      string    `json:"password"`
}

Map verfügt nicht über diese Funktion.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen der zugeordneten Schnittstelle {} und der Typstruktur {}?. 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