我想從另一個給出物件值,但是當我修改 name2 時,它同時修改 name1。
Item item2 = item1;
item2.name = 'a';
我希望每個物件都不相互鏈接。
uj5u.com熱心網友回復:
考慮到您使用的是 Map,您可以使用它from來實作這一點,參考答案在這里
Item Item1 = {
'foo': 'bar'
};
Item Item2 = new Item.from(Item1);
您還可以使用fromJson和toJson來實作這一點
Item1 = Item.fromJson(Item2.toJson());
但對于這個,你需要創建fromJson和toJson手動。你可以通過在這里粘貼你的 json來輕松做到這一點
uj5u.com熱心網友回復:
假設您有一個具有屬性id和name. 如果您創建copyWith如下所示的方法,您可以復制一個類而不參考它。它將復制類并僅修改您作為引數傳遞的值。在Dart Pad 中嘗試一下。
void main() {
final Item item1 = Item(id: 1, name: 'Item 1');
final Item item2 = item1.copyWith(name: 'Item 2');
print(item1); // Item{id: 1, name: Item 1}
print(item2); // Item{id: 1, name: Item 2}
print(item1); // Item{id: 1, name: Item 1}
}
class Item {
const Item({
required this.id,
required this.name,
});
final int id;
final String name;
Item copyWith({int? id, String? name}) => Item(
id: id ?? this.id,
name: name ?? this.name,
);
@override
String toString()=> 'Item{id: $id, name: $name}';
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/351458.html
