Option(ale) jako pola zamiast nulli?

Odpowiedz Nowy wątek
2019-10-30 14:55

Rejestracja: 6 lat temu

Ostatnio: 6 godzin temu

Lokalizacja: Warszawa

0

Załóżmy że mamy klasę (dataclass Kotlinowa) np. Issue które ma opcjonalne pole assignedTo typu UserId które może być puste - czy najlepszym sposobem nie jest po prostu stosowanie Option/Optionala jako typu tego opcjonalnego pola ?. W czystym Kotlinie nie mamy co prawda Optiona,ale są biblioteki


data class Issue(val assignedTo: Option<UserId> = Option.none()) {} 

"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
edytowany 1x, ostatnio: scibi92, 2019-10-30 14:55

Pozostało 580 znaków

2019-11-29 16:05
Moderator

Rejestracja: 12 lat temu

Ostatnio: 5 godzin temu

0

Nie znam się specjalnie na praktykach w Kotlinie, ale nie da się zrobić czegoś w stylu:

enum class Issue {
  CREATED,
  ASSIGNED {
    var to: UserId
  },
  CLOSED {
    var by: UserId
  }
}

Bo to chyba byłoby najczytelniejsze rozwiązanie na maszynę stanu skończonego automat skończony jaką są stany w jakich może się znaleźć issue.


edytowany 1x, ostatnio: hauleth, 2019-11-29 18:29
Wartości enuma też musza być statyczne. var to:UserId musiałoby zostać zainicjowane raz i tej wartości nie można by już zmienić. - piotrpo 2019-11-29 17:20
Ok, nie wiedziałem, w Ruscie coś takiego jest dozwolone i myślałem, że może Kotlin też wspiera. - hauleth 2019-11-29 18:29

Pozostało 580 znaków

2019-11-29 16:18

Rejestracja: 5 lat temu

Ostatnio: 5 dni temu

0

Po 1. chyba skończoną maszynę stanów, a nie stanu skonczonego (no chyba że o czyms nie wiem? :) ), a po 2. wydaje mi sie ze to rozwiązanie w żaden sposób nie zapewnia odpowiednich niezmienników (przejścia nie powinny być dowolne z każdego stanu w każdy).

Za dużo po angielsku gadam i jakoś tak dosłownie przetłumaczyłem FSM. - hauleth 2019-11-29 18:29

Pozostało 580 znaków

2019-11-29 17:45

Rejestracja: 6 lat temu

Ostatnio: 6 godzin temu

Lokalizacja: Warszawa

0

@hauleth: enumy to takie "singletony" więc nie ;]


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"

Pozostało 580 znaków

2019-11-29 18:42

Rejestracja: 4 lata temu

Ostatnio: 5 godzin temu

Lokalizacja: U krasnoludów - pod górą

2

@hauleth: szukasz czegoś co się nazywa algebraiczny typ danych i w kotlinie jest wspierane przez sealed class


jeden i pół terabajta powinno wystarczyć każdemu
No i dokładnie taka propozycja padła na początku wątku. :) - tdudzik 2019-11-29 19:18

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0