dartz 中的 either 和 Option 有什么区别?

what is the difference between either and Option in dartz?

我正在尝试了解 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 一个字符串。从来没有。从不none。非此即彼。

例如,功能性 ParseInt 方法可能 return 一个 Either<int, string>,因为它将 return 一个有效的 int 或一个错误消息。