2012-10-28 13 views

risposta

8

No, per quanto aperte sembra suggerire:

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

E in particolare:

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

Grazie, e ho fatto appena finisco scrivendo un metodo clone me stesso per le poche classi in cui ho bisogno di fare una copia (non solo un punto di riferimento). Sono stato rovinato da Ruby - pensavo che si trattasse di un linguaggio standard. –

+3

supponiamo di essere una lingua standard = _ = " – srcspider

+0

Questa è una sciocchezza.Non ti serve questo? – pjv

1

Credo che per gli oggetti non troppo complessi, è possibile utilizzare la libreria convertito:

import 'dart:convert'; 

e quindi utilizzare la funzione di codifica/decodifica JSON ionality

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

Se si utilizza una classe personalizzata come un valore nell'oggetto di clonare, la classe o ha bisogno di implementare un metodo toJSON() o si deve fornire una funzione toEncodable per il metodo JSON.encode e un metodo di reviver per la chiamata di decodifica.

3

Le raccolte predefinite di freccette utilizzano un costruttore denominato "da" per ottenere ciò. Vedi questo post: Clone a List, Map or Set in Dart

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

Questo potrebbe funzionare per una semplice Mappa, ma non per mappe più complesse come . Avevo la stessa idea come te, ma non funzionava. – Azael

+2

' 'è un costruttore, usa' new Map.from (mapA); ' –