DEV Community

Cover image for Dart/Flutter Liste Methodlar─▒ ­čĺź ­čîî ÔťĘ
G├╝lsen Keskin
G├╝lsen Keskin

Posted on • Updated on

Dart/Flutter Liste Methodlar─▒ ­čĺź ­čîî ÔťĘ

Liste Methodlar─▒ ÔťĘ

add method
Parametre olarak verilen eleman─▒ listenin sonuna ekler.

├ľrnek uygulama:

final numbers = <int>[1, 2, 3];
numbers.add(4);
print(numbers); // [1, 2, 3, 4]
Enter fullscreen mode Exit fullscreen mode

addAll method
Parametre olarak verilen listeyi listenin sonuna ekler.

├ľrnek uygulama:

final numbers = <int>[1, 2, 3];
numbers.addAll([4, 5, 6]);
print(numbers); // [1, 2, 3, 4, 5, 6]
Enter fullscreen mode Exit fullscreen mode

any method

Verilen ko┼čulu listedeki her eleman i├žin dener. E─čer bir eleman ko┼čulu sa─člarsa geriye true d├Ând├╝r├╝r. Hi├žbir eleman ko┼čulu sa─člamaz ise geriye false d├Âner.

├ľrnek uygulama:

final numbers = <int>[1, 2, 3, 5, 6, 7];
var result = numbers.any((element) => element >= 5); // true;
result = numbers.any((element) => element >= 10); // false;
Enter fullscreen mode Exit fullscreen mode

asMap method
Bir listenin key ve value de─čerlerine eri┼čmeyi sa─člar.

├ľrnek uygulama:

var words = <String>['fee', 'fi', 'fo', 'fum'];
var map = words.asMap(); 
print(map);// {0: fee, 1: fi, 2: fo, 3: fum}
map.keys.toList(); 
print(map.keys.toList());// [0, 1, 2, 3]
print(map.values.toList());// [fee, fi, fo, fum]

Enter fullscreen mode Exit fullscreen mode

cast method
Bu listenin bir g├Âr├╝n├╝m├╝n├╝ R ├Ârnekler listesi olarak d├Ând├╝r├╝r.

  var foo = [1, 2.3]; 
  print(foo.runtimeType); // JSArray<num>
  var baz = foo.cast<num>();
  print(baz.runtimeType); // CastList<num, num>
  print(baz == foo); // false
Enter fullscreen mode Exit fullscreen mode

clear method
Bir listedeki t├╝m elemanlar─▒ siler.

final numbers = <int>[1, 2, 3];
numbers.clear();
print(numbers.length); // 0
print(numbers); // []
Enter fullscreen mode Exit fullscreen mode

contains method
Bir koleksiyonun parametre olarak verilen de─čeri i├žerip i├žermedi─čini kontrol eder.

final gasPlanets = <int, String>{1: 'Jupiter', 2: 'Saturn'};
final containsOne = gasPlanets.keys.contains(1); // true
final containsFive = gasPlanets.keys.contains(5); // false
final containsJupiter = gasPlanets.values.contains('Jupiter'); // true
final containsMercury = gasPlanets.values.contains('Mercury'); // false
Enter fullscreen mode Exit fullscreen mode

elementAt method
Parametre olarak verilen indexdeki eleman─▒ d├Ând├╝r├╝r. ─░ndex negatif olmamal─▒ ve listenin eleman say─▒s─▒ndan k├╝├ž├╝k olmal─▒d─▒r.
─░ndex 0 ilk eleman─▒ temsil eder.

├ľrnek uygulama:

final numbers = <int>[1, 2, 3, 5, 6, 7];
final elementAt = numbers.elementAt(4); // 6
Enter fullscreen mode Exit fullscreen mode

every method

Iterable da ki her eleman i├žin verilen ko┼čulun sa─član─▒p sa─članmad─▒─č─▒n─▒ kontrol eder. Iterable da ki t├╝m elemanlar ko┼čulu sa─čl─▒yor ise true sa─člam─▒yor ise geriye false d├Âner.

├ľrnek uygulama:

final planetsByMass = <double, String>{0.06: 'Mercury', 0.81: 'Venus',
  0.11: 'Mars'};
// Checks whether all keys are smaller than 1.
final every = planetsByMass.keys.every((key) => key < 1.0); // true
Enter fullscreen mode Exit fullscreen mode

expand method
Bir iterable(yinelenebilir) ├Â─čenin her ├Â─česini s─▒f─▒r veya daha fazla ├Â─čeye geni┼čletir.

├ľrnek uygulama:

Iterable<int> count(int n) sync* {
  for (var i = 1; i <= n; i++) {
    yield i;
   }
 }

var numbers = [1, 3, 0, 2];
print(numbers.expand(count)); // (1, 1, 2, 3, 1, 2)
Enter fullscreen mode Exit fullscreen mode

firstWhere method

Liste elemanlar─▒ aras─▒nda ko┼čulu sa─člayan ilk eleman─▒ d├Ând├╝r├╝r.

final numbers = <int>[1, 2, 3, 5, 6, 7];
var result = numbers.firstWhere((element) => element < 5); // 1
result = numbers.firstWhere((element) => element > 5); // 6
result =
    numbers.firstWhere((element) => element > 10, orElse: () => -1); // -1
Enter fullscreen mode Exit fullscreen mode

Hi├žbir ├Â─če testi kar┼č─▒lamazsa, orElse fonksiyonunun sonucu d├Ând├╝r├╝l├╝r. orElse atlan─▒rsa, varsay─▒lan olarak bir StateError atar.

fold method

Listenin her bir ├Â─česini mevcut bir de─čerle yinelemeli olarak birle┼čtirerek listeyi tek bir de─čere indirger

Ba┼člang─▒├ž ÔÇőÔÇőde─čeri olarak initialValue ├Â─česini kullan─▒r, ard─▒ndan ├Â─čeler aras─▒nda yinelenir ve combine(birle┼čtirme) fonksiyonunu kullanarak de─čeri her ├Â─čeyle ┼ču ┼čekilde g├╝nceller:

var value = initialValue;
for (E element in this) {
  value = combine(value, element);
}
return value;
Enter fullscreen mode Exit fullscreen mode

├ľrnek uygulama:

final numbers = <double>[10, 2, 5, 0.5];
const initialValue = 100.0;
final result = numbers.fold<double>(
    initialValue, (previousValue, element) => previousValue + element);
print(result); // 117.5
Enter fullscreen mode Exit fullscreen mode

followedBy method
Bir listeyle parametre olarak verilmi┼č olan listenin birle┼čtirilmi┼č halini d├Ând├╝r├╝r.

├ľrnek uygulama:

var planets = <String>['Earth', 'Jupiter'];
var updated = planets.followedBy(['Mars', 'Venus']);
print(updated); // (Earth, Jupiter, Mars, Venus)
Enter fullscreen mode Exit fullscreen mode

forEach method
Listenin her bir eleman─▒n─▒ gezer.

├ľrnek uygulama:

final numbers = <int>[1, 2, 6, 7];
numbers.forEach(print);
// 1
// 2
// 6
// 7
Enter fullscreen mode Exit fullscreen mode

join method

Her ├Â─čeyi bir string'e d├Ân├╝┼čt├╝r├╝r ve bu string'leri parametre olarak verilen ifade ile birle┼čtirir.

├ľrnek uygulama:

final planetsByMass = <double, String>{0.06: 'Mercury', 0.81: 'Venus',
  0.11: 'Mars'};
final joinedNames = planetsByMass.values.join('-'); // Mercury-Venus-Mars
Enter fullscreen mode Exit fullscreen mode

lastWhere method

Verilen ko┼čulu sa─člayan listenin son eleman─▒n─▒ verir.

├ľrnek uygulama:

final numbers = <int>[1, 2, 3, 5, 6, 7];
var result = numbers.lastWhere((element) => element < 5); // 3
result = numbers.lastWhere((element) => element > 5); // 7
result = numbers.lastWhere((element) => element > 10,
    orElse: () => -1); // -1
Enter fullscreen mode Exit fullscreen mode

Hi├žbir ├Â─če testi kar┼č─▒lamazsa, orElse i┼člevinin ├ža─čr─▒lmas─▒n─▒n sonucu d├Ând├╝r├╝l├╝r. orElse atlan─▒rsa, varsay─▒lan olarak bir StateError atar.

map method

├ľrnek uygulama:

var products = jsonDecode('''
[
  {"name": "Screwdriver", "price": 42.00},
  {"name": "Wingnut", "price": 0.50}
]
''');
var values = products.map((product) => product['price'] as double);
var totalPrice = values.fold(0.0, (a, b) => a + b); // 42.5.
Enter fullscreen mode Exit fullscreen mode

noSuchMethod method

Var olmayan bir y├Ânteme veya ├Âzelli─če eri┼čildi─činde ├ža─čr─▒l─▒r.

class MockList<T> implements List<T> {
  noSuchMethod(Invocation invocation) {
    log(invocation);
    super.noSuchMethod(invocation); // Will throw.
  }
}
void main() {
  MockList().add(42);
}
Enter fullscreen mode Exit fullscreen mode

MockList s─▒n─▒f─▒n─▒n List arabirim y├Ântemlerinden herhangi birinin somut bir uygulamas─▒ olmamas─▒na ra─čmen, bu kodun derleme zaman─▒ uyar─▒lar─▒ veya hatalar─▒ yoktur.

List y├Ântemlerine yap─▒lan ├ža─čr─▒lar noSuchMethod'a iletilir, bu nedenle bu kod Invocation.method(#add, [42])'ye benzer bir ├ža─čr─▒y─▒ g├╝nl├╝─če kaydeder ve ard─▒ndan throw atar.

noSuchMethod'dan bir de─čer d├Ând├╝r├╝l├╝rse, orijinal ├ža─čr─▒n─▒n sonucu olur. De─čer, orijinal ├ža─č─▒rma taraf─▒ndan d├Ând├╝r├╝lebilecek t├╝rden de─čilse, ├ža─č─▒rma s─▒ras─▒nda bir type error olu┼čur.

Varsay─▒lan davran─▒┼č, bir NoSuchMethodError atmakt─▒r.

reduce method

Sa─članan fonksiyonu kullanarak listenin ├Â─čelerini yinelemeli olarak birle┼čtirir ve listeyi tek bir de─čere indirger.

Liste en az bir ├Â─čeye sahip olmal─▒d─▒r yaln─▒zca bir ├Â─česi varsa o ├Â─če d├Ând├╝r├╝l├╝r.

final numbers = <double>[10, 2, 5, 0.5];
final result = numbers.reduce((value, element) => value + element);
print(result); // 17.5
Enter fullscreen mode Exit fullscreen mode

singleWhere method
Testi kar┼č─▒layan tek ├Â─čeyi d├Ând├╝r├╝r.

test(element) ├Â─česinin do─čru olup olmad─▒─č─▒n─▒ g├Ârmek i├žin ├Â─čeleri kontrol eder. Tam olarak bir ├Â─če testi kar┼č─▒larsa, o ├Â─če d├Ând├╝r├╝l├╝r. Birden fazla e┼čle┼čen ├Â─če bulunursa, StateError atar. E┼čle┼čen bir ├Â─če bulunamazsa, orElse sonucunu d├Ând├╝r├╝r. orElse atlan─▒rsa, varsay─▒lan olarak bir StateError atar.

├ľrnek uygulama:

final numbers = <int>[2, 2, 10];
var result = numbers.singleWhere((element) => element > 5); // 10
Enter fullscreen mode Exit fullscreen mode

E┼čle┼čen bir ├Â─če bulunmad─▒─č─▒nda, bunun yerine orElse ├ža─čr─▒s─▒n─▒n sonucu d├Ând├╝r├╝l├╝r.

result = numbers.singleWhere((element) => element == 1,
    orElse: () => -1); // -1
Enter fullscreen mode Exit fullscreen mode

Birden fazla e┼čle┼čen ├Â─če olmamal─▒d─▒r.

result = numbers.singleWhere((element) => element == 2); // Throws Error.

skip method
Verilen index'ten itibaren elamanlar─▒ d├Ând├╝r├╝r.

final numbers = <int>[1, 2, 3, 5, 6, 7];
final result = numbers.skip(4); // (6, 7)
final result = numbers.skip(5); //(7)
final result = numbers.skip(1); //(2, 3, 5, 6, 7)
final skipAll = numbers.skip(100); // () - no elements.
Enter fullscreen mode Exit fullscreen mode

skipWhile method

Verilen ko┼čulu sa─člayan elemandan sonraki elemanlar─▒ d├Ând├╝r├╝r. Ko┼čulu sa─člayan hi├žbir eleman yoksa geriye bir de─čer d├Ânmez.

final numbers = <int>[1, 2, 3, 5, 6, 7];
var result = numbers.skipWhile((x) => x < 5); // (5, 6, 7)
result = numbers.skipWhile((x) => x != 3); // (3, 5, 6, 7)
result = numbers.skipWhile((x) => x != 4); // ()
result = numbers.skipWhile((x) => x.isOdd); // (2, 3, 5, 6, 7)
Enter fullscreen mode Exit fullscreen mode

take method
Parametre olarak ald─▒─č─▒ say─▒ kadar listeden eleman d├Ând├╝r├╝r.

├ľrnek uygulama:

final numbers = <int>[1, 2, 3, 5, 6, 7];
final result = numbers.take(2); // (1, 2)
final result2 = numbers.take(4); // (1, 2, 3, 5)
final takeAll = numbers.take(100); // (1, 2, 3, 5, 6, 7)
Enter fullscreen mode Exit fullscreen mode

takeWhile method

Verilen ko┼čul sa─član─▒ncaya kadar listeyi dola┼č─▒r ve sonu├ž olarak ko┼čul sa─član─▒ncaya kadar dola┼čt─▒─č─▒ t├╝m elemanlar─▒ d├Ând├╝r├╝r. Ko┼čul hi├ž bir zaman sa─članmazsa sonu├ž olarak listedeki t├╝m elemanlar─▒ d├Ând├╝r├╝r.

├ľrnek uygulama:

final numbers = <int>[1, 2, 3, 5, 6, 7];
var result = numbers.takeWhile((x) => x < 5); // (1, 2, 3)
result = numbers.takeWhile((x) => x != 3); // (1, 2)
result = numbers.takeWhile((x) => x != 4); // (1, 2, 3, 5, 6, 7)
result = numbers.takeWhile((x) => x.isOdd); // (1)
Enter fullscreen mode Exit fullscreen mode

toList method

Verilen listenin ├Â─čelerini i├žeren yeni bir liste olu┼čturur.

final planets = <int, String>{1: 'Mercury', 2: 'Venus', 3: 'Mars'};
final keysList = planets.keys.toList(growable: false); // [1, 2, 3]
final valuesList =
    planets.values.toList(growable: false); // [Mercury, Venus, Mars]
Enter fullscreen mode Exit fullscreen mode

toSet method

Yinelenebilir ├Â─čeyle ayn─▒ ├Â─čeleri i├žeren bir k├╝me(set) olu┼čturur.

Yinelenebilir ├Â─če birden fazla ├Â─če i├žeriyorsa veya e┼čit olan bir veya daha fazla ├Â─če i├žeriyorsa, k├╝me yinelenebilir ├Â─čeden daha az ├Â─če i├žerebilir. K├╝medeki ├Â─čelerin s─▒ras─▒n─▒n yinelenebilir ├Â─čeyle ayn─▒ olmas─▒ garanti edilmez.

final planets = <int, String>{1: 'Mercury', 2: 'Venus', 3: 'Mars'};
final valueSet = planets.values.toSet(); // {Mercury, Venus, Mars}
Enter fullscreen mode Exit fullscreen mode

where method

Parametre olarak verilen ko┼čulu sa─člayan t├╝m elemanlar─▒ d├Ând├╝r├╝r.

final numbers = <int>[1, 2, 3, 5, 6, 7];
var result = numbers.where((x) => x < 5); // (1, 2, 3)
result = numbers.where((x) => x > 5); // (6, 7)
result = numbers.where((x) => x.isEven); // (2, 6)
Enter fullscreen mode Exit fullscreen mode

whereType method

T t├╝r├╝ne sahip t├╝m ├Â─čelerle birlikte yeni bir lazy Iterable d├Ând├╝r├╝r.

not: Iterable class: S─▒rayla eri┼čilebilen bir de─čerler toplulu─ču veya "├Â─čeler".

resources:
https://api.flutter.dev/flutter/dart-core/Iterable-class.html#instance-methods
https://api.dart.dev/stable/2.16.1/dart-core/dart-core-library.html
https://www.codegrepper.com/code-examples/dart/cast+variable+flutter

Discussion (0)