Terkadang saya melihat ini
List list = [];
Kemudian list..add(color)
Apa perbedaan menggunakan 1 titik ( .
) dan 2 titik ( ..
)?
..
dikenal sebagai notasi kaskade . Ini memungkinkan Anda untuk tidak mengulangi target yang sama jika Anda ingin memanggil beberapa metode pada objek yang sama.
List list = [];
list.add(color1);
list.add(color2);
list.add(color3);
list.add(color4);
// with cascade
List list = [];
list
..add(color1)
..add(color2)
..add(color3)
..add(color4);
Ini operator kaskade Dart
var l1 = new List<int>()..add(0)..addAll([1, 2, 3]);
hasil l1
menjadi daftar[0, 1, 2, 3]
var l1 = new List<int>().add(0).addAll([1, 2, 3]);
menghasilkan kesalahan, karena .add(0)
kembalivoid
..
(dalam contoh sebelumnya) merujuk ke new List()
, sementara .
(di kemudian) merujuk pada nilai pengembalian dari bagian sebelumnya dari ekspresi.
..
diperkenalkan untuk menghindari kebutuhan untuk kembali this
dalam semua jenis metode seperti add()
untuk dapat menggunakan API dengan lancar.
..
menyediakan ini di luar kotak untuk semua kelas.
.. (in former example) refers to new List()
, maksud Anda, kami membuat lagiList
saat kami menggunakan..
menurut saya TIDAK. Saya bingung dengannew
kata - kata Anda , apakah ini benar-benar BARU atau Anda berbicara tentangnew
kata kunci di sini.new
sekarang opsional...
merujuk ke daftar yang dikembalikan olehnew List<int>()
dan memungkinkan untuk memanggil beberapa metode di atasnya sepertiadd(0)
addAll(...)
tanpa mengulangil1.
dan itu adalah contoh daftar yang dibuat yang ditugaskan untukl1
, bukan nilai pengembalian metode terakhir dalam rantai (addAll(...)
). Apakah ini menjawab pertanyaan Anda?new
adalah opsional dimulai dengan Dart 2.0, saya baru saja bingung dengannew
konteks di atas dan terima kasih atas penjelasan Anda...add(6)
sepertil1.add(6)
,.add(6)
sepertil1.add(5).add(6)
.add(5)
kembalivoid
dan Anda tidak dapat memanggiladd()
padavoid
Contoh sebelumnya setara dengan:
sumber
..onClick
tidak diterjemahkanbutton.classes.onClick
?..
Dikenal sebagai operator cascading di panah.Ini memungkinkan Anda untuk menggunakan lebih dari satu operasi selanjutnya:
Contoh:
banerad..load()..show().
Ini adalah contoh lain
sumber