问题描述
我想了解 dartz,但文档不够清楚。 我需要在 dartz 中找出两者之一和 Option 之间的区别?
abstract class Option<A> implements TraversableMonadplusOps<Option,A>
VS
abstract class Either<L,R> implements TraversableMonadOps<Either<L,dynamic>,R>
解决方法
嗯,一个 Option
类型通常是一个类型,要么保存一个类型化的值,要么什么都不保存。
例如,如果您想获取整数列表的第一个整数,这可能是 Option<int>
,因为它可以是 int 或 nothing,以防列表为空。但不能是字符串。
Either
类型就是名称所说的......要么就是其中一种。它可以是两种不同的类型。 Either<int,string>
将具有 int 或 字符串。从来没有。从来没有。一个或另一个。
例如,函数 ParseInt 方法可能会返回 Either<int,string>
,因为它会返回有效的 int 或错误消息。