Nehmen wir an, ich habe eine Basisstruktur, Base
. Ich kann es so einrichten;
struct Base{Struct2 data}
Hier Struct2
ist eine andere Struktur. Aber was ist, wenn ich eine Struktur erstellen möchte, Base
bei der der Datentypwert eine andere Typstruktur ist, sagen wir Struct1
?
Ich weiß, dass ich es schaffen kann;
struct Base1{Struct1 data}
Aber das ist nicht, was ich will. Ich möchte eine Basisstruktur mit Struct1
as-Daten erstellen. Ist das möglich? Ich denke nicht.
Ich bin mir wirklich nicht 100% sicher, ob ich die Frage verstehe, aber ich fange an zu glauben, dass die "Wert" -Seite der Dinge eine willkürliche Struktur sein soll und das genaue Layout dieses Mitglieds nicht im Voraus bekannt ist?
Kurze Antwort: Nein. Sie definieren neue Typen aus bekannten Typen und das Layout muss eindeutig sein.
Ich kann mir eine Reihe von Möglichkeiten vorstellen, um diesen Effekt innerhalb der Grenzen von Solidity zum Laufen zu bringen. Sie müssen es normalisieren, indem Sie entweder eine endliche Menge gültiger Strukturen definieren, beliebig komplexe (aber normalisierte) Sätze von Schlüssel/Wert-Paaren einrichten oder etwas anderes.
Ich hoffe es hilft.
JBrouwer
Rob Hitchens
uint[] myUints
,myOtherStruct[] myOtherStructs
oder sogarmapping(keyType=>valType) mapName;
Speicher-Fußabdrücke sind insofern etwas seltsam, als die Blockchain normalerweise nicht wirklich wächst, bis ein Slot explizit beschrieben wird . Mappings zum Beispiel sind (per Definition) riesige Namensräume, aber sie kosten erst, wenn ein Wert an einen Ort geschrieben wird.