nestserau
12/10/2018, 10:25 AMenum Optional<T> {
case None
case Some(T)
}
diesieben07
12/10/2018, 10:26 AMsealed class Optional<out T> {
object None : Optional<Nothing>()
data class Some(val value: T) : Optional<T>()
}
nestserau
12/10/2018, 10:35 AMSome
should be declared as data class Some<out T>(val value: T): Optional<T>()
, otherwise it doesn’t compile?Olivier
12/10/2018, 10:35 AMval object : MyClass? = ...
nestserau
12/10/2018, 10:39 AMsealed class MessageResult<out T> {
data class ok<out T>(val value: T): MessageResult<T>()
data class failed(val error: MessageError): MessageResult<Nothing>()
}
So it’s a little bit more complex than an optional. 🙂nestserau
12/10/2018, 10:39 AMNothing
, but now I do, so the task is solved.diesieben07
12/10/2018, 10:40 AMI guessYes, of course. Missed that, sorry.should be declared asSome
, otherwise it doesn’t compile?data class Some<out T>(val value: T): Optional<T>()
Olivier
12/10/2018, 11:17 AMEtiher
class that can fit you needs
https://github.com/arrow-kt/arrow/blob/master/modules/core/arrow-core/src/main/kotlin/arrow/core/Either.ktnfrankel
12/10/2018, 11:17 AMbjartek
12/10/2018, 1:13 PMOlivier
12/10/2018, 1:20 PMNarayan Iyer
12/10/2018, 1:47 PMScala
, but the same functionalities are provided by Arrow
. Differentiates when to use Either
or Try
or Option
etc. https://www.47deg.com/presentations/2017/02/18/Functional-error-handling/