Uważam za głęboko dziwne, że jest to możliwe w Ruby (nie od razu powiem jak):
obj = #code redacted
print obj.state # Some value.
LValue = obj
print obj.state # Different value!
Twoim wyzwaniem jest stworzenie kodu z grubsza z tej formy. Utwórz obiekt i przypisz go do zmiennej. Powinien mieć określony atrybut (lub deterministyczną, idempotentną metodę), jak state
wyżej, który zmienia się po przypisaniu obiektu do nowego identyfikatora ( LValue
powyżej), nawet jeśli nadal używasz starego identyfikatora ( obj
powyżej), aby się do niego odwoływać.
Edytuj dla wyróżnienia : state
lub odpowiednik musi być idempotentny, więc utworzenie akcesora, który modyfikuje wartość, lub z jakiegokolwiek innego powodu zwraca różne wyniki, gdy jest wywoływany kilka razy z rzędu, nie jest prawidłowym rozwiązaniem. Lub, mówiąc prościej, musi to być zadanie, które zmienia stan.
Każdy język z przypisaniem jest kwalifikowalny, chociaż prawdopodobnie istnieją takie, w których nie ma w pełni uzasadnionego rozwiązania. Opublikuję moją odpowiedź Ruby, jeśli nikt inny nie dostanie jej po kilku dniach, i będę przyjmować odpowiedzi o najwyższym głosowaniu na bieżąco.
(setq a (list "val")) (setq b (nconc a "val2"))
na przykład. a
kończy się tak jak ("val" . "val2")
w tym momencie.
LValue = obj
linia musi być wymaganastate
do faktycznej zmiany? (Mógłbym po prostu stworzyć właściwość w języku C #, która zwiększa się za każdym razem, gdy ją zdobędziesz)