#4 - obserwuj zmiany
🏋️

#4 - obserwuj zmiany

Tags
devChallenge 22
Published
December 6, 2022
Author
Jarosław Michalik
Twoim zadaniem jest śledzenie zmian w klasie… Za każdym razem, gdy zawartość content zostanie zmieniona na nową wartość, licznik howManyTimesContentWasChanged ma zostać podbity o 1.
 
Zmodyfikuj klasę ChangeableState.
Pożądane działanie:
val state = ChangeableState("jareczek") // howManyTimesContentWasChanged: 0 //zmiana z "jareczek" na "jaro" -> podbijamy licznik state.content = "jaro" // howManyTimesContentWasChanged: 1 //zmiana z "jaro" na "jarek" -> podbijamy licznik state.content = "jarek" //howManyTimesContentWasChanged: 2 //zmiana z "jarek" na "jarek" - nie podbijamy licznika state.content = "jarek" //howManyTimesContentWasChanged: 2 //zmiana z "jarek" na "jareczek" - podbijamy licznik state.content = "jareczek" //howManyTimesContentWasChanged: 3
 
  • nie zmieniaj nazw content ani howManyTimesContentWasChanged, niech oba nadal będą var
 
podpowiedź
Czy potrzebujemy tworzyć całą osobną funkcję, żeby zdefiniować customowy setter?
 
Chcesz podwoić liczbę punktów za to zadanie?
Dodaj ignorowanie białych znaków. Wtedy oczekiwane zachowanie będzie następujące:
val state = ChangeableState("jareczek") // howManyTimesContentWasChanged: 0 //zmiana z "jareczek" na "jareczek " -> nie podbijamy licznika state.content = "jareczek " // howManyTimesContentWasChanged: 0
 
Uzupełnij ten kod, po czym go uruchom (zielony trójkąt w prawym górnym rogu)
 
 
 

Rozwiązanie zadania #3

Wszystkie odpowiedzi były poprawne. Funkcję infix operator fun Coordinates.plus możemy wywołać jako infix, operator i extension.
 
Wyjaśnienie:
 
Video preview