Establecer valores de una matriz de bytes dinámicamente

Si establezco los valores de una matriz de la siguiente manera, ¿estoy equivocado?

uint256 n = 0;
bytes32[n] example;

function getArraySize(uint256 arraySize) public returns(uint256 size) {

 size = arraySize;
 return size;

}

n = getArraySize(3);
example[n] = [bytes32("value_1"),bytes32("value_2"),bytes32("value_3")];

Obtengo " parser error: expected identifier" n = getArraySize(3);pero no sé qué está mal.

Nota : Esta pregunta está relacionada con otra pregunta (el enlace a continuación) donde en su respuesta en la nota número 2, se menciona que en caso de definir una matriz con tamaño dinámico, no es posible establecer valores de esa matriz como este:

newObject(100, 3, [bytes32("location"),bytes32("price"),bytes32("sold")], [bytes32("Paris"),bytes32("50"),bytes32("yes")], address(0xE07b6e5a2026CC916A4E2Beb03767ae0ED6af773);

Enlace de pregunta relacionada: Argumento de codificación de error (remix)

¿Por qué no intentas compilar esto y ver qué pasa?
@goodvibration me sale "error del analizador: identificador esperado" para n = getArraySize(3); pero no se que le pasa

Respuestas (1)

Su código tiene muchos problemas. En primer lugar, la forma en que está asignando el tamaño de la matriz daría como resultado 0, ya que ncomienza como 0, el tamaño de la matriz sería 0. En su lugar, bytes32[] example;sería suficiente crear una matriz dinámica. El siguiente problema es que está tratando de usar n = getArraySize(3); example[n] = [bytes32("value_1"),bytes32("value_2"),bytes32("value_3")];fuera de una función que no es posible con la solidez. Para solucionar esto, debe envolver una función alrededor del código. Luego puede usar example.push("value_1");ect para insertar en la matriz. lo que hace que el uso de getArraySize y n sea irrelevante.

Gracias, pero de acuerdo con la respuesta a continuación, aparentemente en Solidity no podemos establecer valores de una matriz como "[bytes32("value_1"),bytes32("value_2"),bytes32("value_3")];" en caso de que el tamaño de la matriz se defina dinámicamente, ¿tiene una solución para este problema? Gracias ethereum.stackexchange.com/questions/47538/…
Literalmente te dije, usaexample.push("value_1"); example.push("value_2"); example.push("value_3");
Consulte mi función newObject en cuestión. Mencioné su enlace en mi comentario anterior. Mi problema es cómo establecer los valores de los parámetros de bytes32[] sub_states_types y bytes32[] sub_states_values ​​al momento de invocar la "función newObject". ¿Tiene una solución sobre cómo invocar esta función ya que sus parámetros son una matriz? Gracias de nuevo.
No puede hacer referencia a otra pregunta sobre esta pregunta que también desee una respuesta para eso. Si esta es la solución para esta pregunta, puede marcarla como hecha y luego quizás pueda ver su otra pregunta. Estas preguntas no se relacionan entre sí.
Lo hice en mi pregunta. Si debo hacer algo más, por favor hágamelo saber. Gracias