다트 확산 연산자 💫 🌌 ✨

Spread(...) ve null-aware spread operator (...?) bir koleksiyona birden çok değer eklemek için kısa bir yol sağlar.

Örneğin, bir listenin tüm değerlerini başka bir listeye eklemek için spread operatörünü (...) kullanabilirsiniz:

var list = [1, 2, 3];
var list2 = [0, ...list];
assert(list2.length == 4);


Spread operatörünün sağındaki ifade null olabilirse, null alana duyarlı bir spread operatörü (...?) kullanarak istisnalardan kaçınabilirsiniz:

var list2 = [0, ...?list];
assert(list2.length == 1);


Tek tek öğelerden yeni bir koleksiyon oluşturmak istediğinizde koleksiyon değişmezleri mükemmeldir. 이 모든 것이 기본적으로 작동하지 않는 경우가 있습니다.

... bir map veren bir ifade alır ve bu map'in tüm verilerini yeni map'e ekler.

var items = [2, 3, 4];
var set = { 1, 2, ...items };



문자: {1, 2, 3, 4}
Null 인식 확산

var oops;
var list = [...oops];
print(list);


오류: Uncaught Error: TypeError: null: 'JSNull' 유형은 'Iterable' 유형의 하위 유형이 아닙니다.

var oops;
var list = [...?oops];
print(list);


문자: []
var things = [2, null, 3];
var more = [1, ...things, 4]; // [1, 2, null, 3, 4].
var also = [1, ...?things, 4]; // [1, 2, null, 3, 4].


Bir dizideki boş öğeleri atlamak istiyorsanız:

var things = [2, null, 3];
var more = [1, ...things.where((thing) => thing != null), 4];
// [1, 2, 3, 4].


사기꾼

const list = [2, 3];
const another = [1, ...list, 4]; // [1, 2, 3, 4].


자원 :)
https://github.com/dart-lang/language/blob/master/accepted/2.3/spread-collections/feature-specification.md
https://dart.dev/guides/language/language-tour#spread-operator

좋은 웹페이지 즐겨찾기