Tipos de almacenamiento
- Storage: Memoria persistente. Es el más costoso. Similar a la memoria ROM
- Memory: Variables temporales durante ejecución. Se asimila a la RAM
- Calldata: Son constantes definidas en el entorno de ejecución de una variable. No son modificables.
Memoria dinámica
La razón por la que un string necesita un sufijo que indique el uso de memoria, es debido a que es memoria dinámica, por lo que calldata no puede alocar una cantidad definida de memoria, por lo que tenemos que indicarle que esa variable la pase por la memoria volátil (RAM/memory), para que la función la pueda manejar correctamente.
Este efecto ocurre con cualquier cosa que sea de tamaño no definido, por ejemplo:
- Un arreglo
- Un string
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?