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 或一个错误消息。
我正在尝试了解 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 或一个错误消息。