颤动中的Equatable和Freezed之间有什么区别?
嗨,我是 flutter 的新手,我正在关注一些 youtube 教程,我想知道 flutter 中的 Equatable 和 Freezed 之间有什么不同?我的意思是使用它的目的是相同的,但我只想知道在哪种情况下我们最好使用 Equatable 或 Freezed。
回答
我的意思是使用它的目的是一样的
一点也不。Equatable 是“一个抽象类,它有助于实现相等性,而无需显式覆盖 == 和 hashCode。”。Freezed 是“为具有简单语法/API 且不影响功能的不可变类生成代码。”
当然,它们都覆盖 == 和 hashCode,但在那之后,它们就大不相同了。Equatable 是一个 mixin,用于提供一致的、简单的 == 和 hashCode(虽然不一定是最有效的)。Freezed 是一个构建系统,可以使用注解来创建不可变类。绝对不同。
- Do you need immutable values, and are willing to deal with the compile-time building for that? Use Freezed. Do you need to save a little time writing == and hashCode to react to the member values of your class? Use Equatable.