No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

√öltima oportunidad para asegurar tu aprendizaje por 1 a√Īo a precio especial

Antes: $249

Currency
$189/a√Īo

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

0D
8H
43M
44S

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?

o inicia sesión.

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?