¿Es posible crear estructuras y declarar una variable?

Digamos que tengo una estructura base, Base. Puedo configurarlo así;

struct Base{Struct2 data}

Aquí Struct2hay otra estructura. Pero, ¿qué pasa si quiero crear una Baseestructura donde el valor del tipo de datos es otra estructura de tipo, digamos Struct1?

Sé que puedo hacerlo por;

struct Base1{Struct1 data}

Pero eso no es lo que quiero. Quiero crear una estructura base con Struct1datos. es posible? Supongo que no.

Respuestas (1)

Realmente no estoy 100% seguro de entender la pregunta, pero estoy empezando a pensar que se supone que el lado del "valor" de las cosas es una estructura arbitraria y que el diseño preciso de este miembro no se conoce de antemano.

Respuesta corta, no. Está definiendo nuevos tipos a partir de tipos conocidos y el diseño debe ser inequívoco.

Se me ocurren varias formas de lograr que ese efecto funcione dentro de los límites de Solidity. Tendrá que normalizarlo, ya sea definiendo un conjunto finito de estructuras válidas, configurando conjuntos arbitrariamente complejos (pero normalizados) de pares clave/valor, o mediante otra cosa.

Espero eso ayude.

Sí, esa es básicamente mi pregunta. Supongo que una pregunta similar es si las estructuras son constantes o no (en términos de tamaño), al igual que se le permite crear matrices dinámicas, pero también matrices con un lado fijo. En el ejemplo aquí, una estructura dinámica sería una estructura que le permite pasar diferentes tipos de estructuras a variables y las estructuras fijas no podrían cambiar ningún tipo de variable. Supongo que es lo último. ¡Gracias!
Son estáticos en el sentido de que son tipos y están dispuestos sin ambigüedades, pero pueden contener miembros dinámicos, por ejemplo uint[] myUints, myOtherStruct[] myOtherStructso incluso mapping(keyType=>valType) mapName;las huellas de almacenamiento son un poco extrañas en el sentido de que la cadena de bloques generalmente no crece hasta que se escribe explícitamente una ranura. . Las asignaciones, por ejemplo, son (por definición) espacios de nombres masivos, pero no cuestan hasta que se escribe un valor en una ubicación.