a mesma estrutura em array e mapeamentos
Oct 06 2020
Digamos que eu tenha um struct.
struct test {
uint x;
}
test[] all;
mappings(uint => test) map;
function bla(){
test memory structTest = test(5);
all.push(structTest);
map[10] = structTest;
}
Após o código, será structTestsalvo em um lugar e então meu array e map salvará as referências a ele ou será armazenado separadamente em map e array?
Se for o último, como posso criar struct e armazená-lo no mapeamento e array para não perder espaço?
Respostas
2 goodvibration Oct 06 2020 at 20:58
Uma cópia de structTesté salva separadamente na matriz e no mapeamento.
Para se livrar dessa redundância, você pode manter uma matriz de chaves em vez de valores:
uint[] all; // instead of `test[] all;`
mappings (uint => test) map;
function bla() {
test memory structTest = test(5);
all.push(10); // instead of `all.push(structTest);`
map[10] = structTest;
}
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino