Tengo un mapeo como este:
struct data {
string name;
string nickname;
}
mapping(address => data) public user;
¿Cuál es la forma correcta de eliminar un elemento de la variable usuario? ¿Solo tengo que llamar?delete(user[address])
o
¿También tengo que eliminar user[address].name
y user[address].nickname
?
Sí, delete user[someAddress];
funcionará con estructuras que no contengan un mapeo.
Para esta pregunta, debido a que name
y nickname
no son asignaciones, se eliminarán (se pondrán a cero) automáticamente: no hay necesidad de hacer algo como "eliminar usuario[alguna dirección].nombre".
http://solidity.readthedocs.io/en/develop/types.html#delete
si elimina una estructura, restablecerá todos los miembros que no sean asignaciones y también recurra a los miembros a menos que sean asignaciones
Advertencia:
delete no tiene efecto en las asignaciones completas (ya que las claves de las asignaciones pueden ser arbitrarias y generalmente desconocidas)
Abejorro
ética
Jaime
ética
QWERTY
ética