2012-10-28 157 views

回答

8

沒有就懸而未決的問題似乎在暗示:

http://code.google.com/p/dart/issues/detail?id=3367

而具體:

.. Objects have identity, and you can only pass around references to them. There is no implicit copying. 
+4

謝謝,我也只是在最後寫一個clone方法爲自己,我需要做一個副本(不只是一個參考)的幾堂課。我被Ruby寵壞了 - 認爲這是一種標準的語言功能。 –

+3

它是一個標準的語言功能= _ =「 – srcspider

+0

這是愚蠢的。你不需要這個? – pjv

1

我猜不是太複雜的對象,你可以使用轉換庫:

import 'dart:convert'; 

然後使用JSON編碼/解碼函數ionality

Map clonedObject = JSON.decode(JSON.encode(object)); 

如果您使用的是自定義類作爲對象的值克隆,類或者需要實現的toJSON()方法,或者你必須提供的JSON.encode方法toEncodable功能和解碼調用的更新方法。

3

飛鏢內置集合使用名爲「from」的命名構造函數來完成此操作。看到這個帖子:Clone a List, Map or Set in Dart

Map mapA = { 
    'foo': 'bar' 
}; 
Map mapB = new Map.from(mapA); 
+0

這可能適用於一個簡單的 Map,但它不適用於像這樣更復雜的地圖。我有和你一樣的想法,但它不起作用 – Azael

+2

'from '是一個構造函數,使用'new Map.from(mapA);' –