Umgang mit verschachtelten Slices im Go-Datenspeicher: Fehler und Lösungen
Beim Versuch, Google AppEngine-Datenspeicherentitäten in ein Go-Projekt zu laden, kann es zu Problemen kommen der folgende Fehler: „Datenspeicher: Das Reduzieren verschachtelter Strukturen führt zu einem Slice-Slice: Feld ‚Nachrichten‘“. Dieser Fehler tritt auf, wenn die Go-Modelldefinition ein Segment einer Struktur enthält, die auch ein Segment enthält.
Um dieses Problem zu beheben, ist es wichtig zu verstehen, dass der Go-Datenspeicher keine mehrschichtigen Slices unterstützt. Entwickler haben die folgenden Optionen:
Beispiel:
Berücksichtigen Sie die folgenden Modelldefinitionen:
Python:
<code class="python">class ModelB(ndb.Model): msg_id = ndb.StringProperty(indexed=False) ... class ModelA(ndb.Model): ... messages = ndb.LocalStructuredProperty(ModelB, name='bm', repeated=True)</code>
Go:
<code class="go">type ModelB struct { MessageID string `datastore:"msg_id,noindex"` ... } type ModelA struct { ... Messages []ModelB `datastore:"bm,"` }</code>
In diesem Fall tritt der Fehler auf, weil das Go-Modell definiert ein Teil von ModelB (ModelA.Messages). ModelB selbst verfügt jedoch über einen Slice (ModelB.MessageID). Um das Problem zu beheben, stellen Sie entweder sicher, dass ModelA.Messages ein flaches Segment von ModelB ist, oder entwerfen Sie die Datenstruktur neu, um verschachtelte Segmente zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit dem Fehler „Datastore: Das Reduzieren verschachtelter Strukturen führt zu einem Slice-Slice' im Go Datastore um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!