Igual objetos com identidade diferente?
-
21-12-2019 - |
Pergunta
É possível Ferramenta para criar clones de um objeto com diferentes identidade, de modo que eles são iguais mas não idênticos?
Solução
Não, o Moleque tem um valor semântico.
data X = x();
bool alwaysTrue = x() == x();
Mesmo usando tampas, funções de dados, você não pode construir duas instâncias distinguíveis a
e b
o que ainda vai retornar true, a == b
.A razão é que os vedantes nunca são considerados iguais, a menos que você tiver um alias apontando para a mesma instância.
Também não existe nenhuma operação de clonagem ou qualquer coisa assim.Não são apenas expressões e o seu resultado é isomórfica à árvore de expressão que os criou.
Semanticamente Malandro não garante que todos os valores na pilha seja de fato compartilhado, ou de que eles são indistinguíveis, de modo que a memória de otimização perspectiva é deixada inteiramente para o tempo de execução da implementação.