No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Escribiendo y compilando tu primer Smart-contract

6/19
Recursos

Aportes 4

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Este codigo tiene un problema, si hay mas de un owner con comidas voy a terminar accediendo a espacios del array que no existen, asi lo solucione:

PlatziFoodItem[] memory myFoods = new PlatziFoodItem[](itemCount);
uint256 nextPosition = 0;
for (uint256 i = 0; i < platziFoods.length; i++){
   if(platziFoods[i].owner == msg.sender) {
     myFoods[nextPosition] = platziFoods[i];
     nextPosition += 1;
   }
}

Usa memory en los argumentos, pero lo adecuado es calldata

Tipos de almacenamiento

  • Storage: Memoria persistente. Es el más costoso. Similar a la memoria ROM, almacenamiento dentro del contrato, garantiza que el valor va a seguir existiendo, se va a mantener.

  • Memory: Variables temporales durante ejecución. Se asimila a la RAM, ligado al ámbito de la función que lo declara, es de costo menor a storage.

  • Calldata: es donde se alojan los parámetros, de comportamiento similar a memory. Son constantes definidas en el entorno de ejecución de una variable. No son modificables.

Cuál sería la diferencia entre usar un array o un mapping?