如何以及何时在dart中使用Record类型,以及使用它与其他集合类型(如map,list等)之间的区别是什么?另外,在Dart doc中,它声明记录是真实的值,这意味着什么?
Record
lrpiutwd1#
记录不是“集合类型”。我认为这是非常误导的。它基本上是一种非常简短和动态的方式来声明一个只包含字段而不包含其他内容的类。例如({int r, int g, int b}) color,这是一个类型的变量,它有三个int类型的字段,名为r,g和b。你可以创建一个类:
({int r, int g, int b}) color
r
g
b
class Color { final int r; final int g; final int b; Color({this.r, this.b, this.g}); }
这将服务于相同的目的,只是更多的工作和更多的类定义。因为:记录根据其字段的结构自动定义hashCode和==方法。因此,使用现场骨料是一种非常实用和节省时间的方法。或“数据保持器类”。它不是收藏的替代品。集合是相同类型的不同数量的元素,记录是预定义数量的不同类型。
hashCode
==
1条答案
按热度按时间lrpiutwd1#
记录不是“集合类型”。我认为这是非常误导的。
它基本上是一种非常简短和动态的方式来声明一个只包含字段而不包含其他内容的类。
例如
({int r, int g, int b}) color
,这是一个类型的变量,它有三个int类型的字段,名为r
,g
和b
。你可以创建一个类:
这将服务于相同的目的,只是更多的工作和更多的类定义。因为:
记录根据其字段的结构自动定义
hashCode
和==
方法。因此,使用现场骨料是一种非常实用和节省时间的方法。或“数据保持器类”。它不是收藏的替代品。集合是相同类型的不同数量的元素,记录是预定义数量的不同类型。