es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo actualizar el valor de una variable de una estructura con asignación en Solidity.

Quiero actualizar el valor de “amount” utilizando la Función setter después de mapear con data1.

pragma solidity ^0.8.0;

contract acc_data{

struct person{

string name;
uint age;
address add;
uint amount;
}

person public p1;
mapping(address=>person) public data1;

function map()public{
data1[p1.add]=p1;
}

function structsetter()public {
p1.name=”rohit”;
p1.age=22;
p1.add=0x5B38Da6a701c568545dCfcB03FcB875f56beddC4;
p1.amount=0;
}

function setter() public {
p1.amount=7;
}

}

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para actualizar el valor de “amount” utilizando la función setter después de mapear con data1, puedes seguir los siguientes pasos:

    1. Primero, llama a la función structsetter para inicializar los campos de la estructura con algunos valores, incluyendo la dirección de la persona (p1.add) que se utilizará en el mapping.
    2. Llama a la función map para mapear la dirección de la persona (p1.add) a la estructura de la persona (p1) en el mapping data1.

    3. Finalmente, llama a la función setter para actualizar el campo “amount” de la estructura de la persona con el valor deseado (en este caso, 7).

    El código actualizado se vería así:

    pragma solidity ^0.8.0;
    
    contract acc_data {
    
        struct person {
            string name;
            uint age;
            address add;
            uint amount;
        }
    
        person public p1;
        mapping(address => person) public data1;
    
        function map() public {
            data1[p1.add] = p1;
        }
    
        function structsetter() public {
            p1.name = "rohit";
            p1.age = 22;
            p1.add = 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4;
            p1.amount = 0;
        }    
    
        function setter() public {
            data1[p1.add].amount = 7;
        } 
    }
    

    Ten en cuenta que estamos accediendo al campo “amount” de la estructura de la persona en el mapping utilizando la dirección de la persona (p1.add) como clave, y luego actualizando su valor a 7. Esto actualizará el campo “amount” en la estructura p1 y en el mapping data1.

Comments are closed.