有没有办法在 Dart 中克隆对象?
Is there a way to clone objects in Dart?
我在 Whosebug 上回答了几个关于这个的问题,但对我来说没有任何意义。最简单的方法是什么?
查看下方class以供参考:
class Customer {
final String id;
final String name;
final String address;
final String phoneNo;
final String gstin;
final String state;
Customer({
this.id = '',
@required this.name,
@required this.address,
@required this.phoneNo,
this.gstin,
@required this.state,
});
Customer copyWith({
String name,
String address,
String phoneNo,
String gstin,
String state,
}) {
return Customer(
name: name ?? this.name,
address: address ?? this.address,
phoneNo: phoneNo ?? this.phoneNo,
gstin: gstin ?? this.gstin,
state: state ?? this.state,
);
}
}
使用 copyWith 构造函数,您可以创建对象的副本。
如果您不向 copyWith 构造函数传递任何参数,它return具有相同值的相同对象
但是,如果您希望更改使用 copyWith 构造函数执行的任何参数,它将 return 使用您传递的新参数值复制对象
注意:在 copyWith 构造函数中,假设如果您更改一个参数值,那么其他参数值与第一个对象保持相同。
我在 Whosebug 上回答了几个关于这个的问题,但对我来说没有任何意义。最简单的方法是什么?
查看下方class以供参考:
class Customer {
final String id;
final String name;
final String address;
final String phoneNo;
final String gstin;
final String state;
Customer({
this.id = '',
@required this.name,
@required this.address,
@required this.phoneNo,
this.gstin,
@required this.state,
});
Customer copyWith({
String name,
String address,
String phoneNo,
String gstin,
String state,
}) {
return Customer(
name: name ?? this.name,
address: address ?? this.address,
phoneNo: phoneNo ?? this.phoneNo,
gstin: gstin ?? this.gstin,
state: state ?? this.state,
);
}
}
使用 copyWith 构造函数,您可以创建对象的副本。
如果您不向 copyWith 构造函数传递任何参数,它return具有相同值的相同对象
但是,如果您希望更改使用 copyWith 构造函数执行的任何参数,它将 return 使用您传递的新参数值复制对象
注意:在 copyWith 构造函数中,假设如果您更改一个参数值,那么其他参数值与第一个对象保持相同。