typestar

Ubicación de datos en Solidity

storage persiste, memory es borrador, calldata es la llamada.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

// Data location matters: storage persists, memory is scratch,
// calldata is the read-only bytes of the call itself.
contract LabelMaker {
    string public stored;

    function keep(string calldata label) external {
        stored = label;  // calldata copies into storage
    }

    function shout(string memory label)
        public pure returns (string memory)
    {
        return string.concat(label, "!");
    }

    function shoutStored() external view returns (string memory) {
        return shout(stored);  // storage copies into memory
    }
}

Cómo funciona

  1. Asignar calldata a un string de estado copia a storage.
  2. Los parámetros memory son copias mutables de borrador.
  3. string.concat arma strings nuevos en memoria.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
22
Caracteres a escribir
551
Tokens
76
Ritmo de tres estrellas
55 tpm

Al ritmo de tres estrellas de 55 tokens por minuto, este intento toma unos 83 segundos.

Escribe este fragmento

Paso 1 de 3 en Datos y gas; paso 14 de 28 en Fundamentos del lenguaje.

← Anterior Siguiente →