Acho profundamente estranho que isso seja possível em Ruby (não vou dizer imediatamente como):
obj = #code redacted
print obj.state # Some value.
LValue = obj
print obj.state # Different value!
Seu desafio é criar código aproximadamente neste formulário. Crie um objeto e atribua-o a uma variável. Ele deve ter algum atributo definido (ou método determinístico e idempotente) como stateacima, que muda após o objeto ser atribuído a um novo identificador ( LValueacima), mesmo se você ainda usar o identificador antigo ( objacima) para fazer referência a ele.
Edite para enfatizar : stateou o equivalente deve ser idempotente, portanto, criar um acessador que modifique o valor ou, por qualquer outro motivo, retorne resultados diferentes quando chamado várias vezes seguidas, não é uma solução válida. Ou, mais simplesmente, deve ser a atribuição que muda de estado.
Qualquer idioma com atribuição é elegível, embora haja provavelmente alguns em que não há solução totalmente legítima. Vou postar minha resposta em Ruby se ninguém mais receber depois de alguns dias e aceitar as respostas mais votadas em uma base contínua.
(setq a (list "val")) (setq b (nconc a "val2"))por exemplo. aacaba avaliando ("val" . "val2")nesse momento.
LValue = objÉ necessário que a linha sejastaterealmente alterada? (Eu poderia apenas fazer uma propriedade em C # que incrementos cada vez que você obtê-lo)