- 7 Tem 2013
- 8,203
- 678
Merhaba bu konuda Dart dilinde map yapısına ufak bir giriş yapıyoruz. Bu konu 0'dan İleri Seviyeye Mobil Uygulama Geliştirme Eğitimi verdiğim seri ile bağlantılıdır ve serinin 4.konusunda ufak bir link bırakacağım buraya geleceksiniz.
serinin şu anki hali:
0'dan İleri Seviyeye Mobil Uygulama Geliştirme Eğitimi Veriyorum #1
0'dan İleri Seviyeye Mobil Uygulama Geliştirme Eğitimi Veriyorum #2
0'dan İleri Seviyeye Mobil Uygulama Geliştirme Eğitimi Veriyorum #3
Map yapısında Anahtar(key) : Değer(Value) çifti ile veriler depolanır. Örneğin illerin plakaları ve isimleri bu yapıya örnek verilebilir ya da telefon numaraları ile kişi adları map yapısına örnek verilebilir
Şimdi biraz örneklerle açıklayalım
diyelim bir müşteri geldi müşteri adı ahmet ve parası 20 olsun.
bunu tutmak için daha önce hiç map kullanmadık.
map iki tane parametre alır key ve value olarak değerleri tutar.
users a gidip ahmet keyinin karşısındaki value yü bize verir yani 20 yi
farklı bir kullanım senaryosuna bakalım tabii yukarıdaki kullanım daha kolay
bizim hayatımız maplerle geçecek çünkü servisler olacak servislerden cevaplar gelecek bu cevapları parse edip ekranlarda gösterirken mapleri kullanacağız hep
senaryomuz şöyle olsun banka olalım müşterimizin birden fazla hesabı olabilir olsun ahmet beyin 3 heasbı var sırasıyla 100,300,200 olsun
mehmet bey 2 hesabı olsun 30 50 olsun
veli bey 1 hesap 30 olsun
adamın hesaplarını kontrol edip herhangi bir hesapta 150tlden fazla olan varsa krediniz hazır de
vbBank['mehmet']= [30,50]; diyerek de ayrı ayrı bu şekilde verebilirdik fakat tek seferde verdik.
bankadaki müşterilerin hesalarının toplam mevlasını bulmak için
serinin şu anki hali:
0'dan İleri Seviyeye Mobil Uygulama Geliştirme Eğitimi Veriyorum #1
0'dan İleri Seviyeye Mobil Uygulama Geliştirme Eğitimi Veriyorum #2
0'dan İleri Seviyeye Mobil Uygulama Geliştirme Eğitimi Veriyorum #3
Map yapısında Anahtar(key) : Değer(Value) çifti ile veriler depolanır. Örneğin illerin plakaları ve isimleri bu yapıya örnek verilebilir ya da telefon numaraları ile kişi adları map yapısına örnek verilebilir
Şimdi biraz örneklerle açıklayalım
diyelim bir müşteri geldi müşteri adı ahmet ve parası 20 olsun.
bunu tutmak için daha önce hiç map kullanmadık.
map iki tane parametre alır key ve value olarak değerleri tutar.
Kod:
Map<String, int> users = {
'ahmet' : 20,
'mehmet': 30,
};
print('ahmetin parası ${users['ahmet']}');
users a gidip ahmet keyinin karşısındaki value yü bize verir yani 20 yi
Kod:
for(var item in users.keys){ //mapin keys metodu var keyleri bir iterable olarak verir bu kullanımı da hatırlıyoruz listlerden zaten yapacağı işlem users mapinin keylerini gezmek
print("${item} - ${users[item]}");
}
farklı bir kullanım senaryosuna bakalım tabii yukarıdaki kullanım daha kolay
Kod:
for(var i =0; i<users.length; i++){
print('${users.keys.elementAt(i)} - ${users.values.elementAt(i)}'); //elementAt metoduna bir indeks veriyorsun o indexi döndürüyor olayı bu
}
bizim hayatımız maplerle geçecek çünkü servisler olacak servislerden cevaplar gelecek bu cevapları parse edip ekranlarda gösterirken mapleri kullanacağız hep
senaryomuz şöyle olsun banka olalım müşterimizin birden fazla hesabı olabilir olsun ahmet beyin 3 heasbı var sırasıyla 100,300,200 olsun
mehmet bey 2 hesabı olsun 30 50 olsun
veli bey 1 hesap 30 olsun
adamın hesaplarını kontrol edip herhangi bir hesapta 150tlden fazla olan varsa krediniz hazır de
Kod:
Map<String,List<int>> vbBank = {
'ahmet': [100,300,200],
'mehmet': [30,50],
'veli': [30],
};
vbBank['mehmet']= [30,50]; diyerek de ayrı ayrı bu şekilde verebilirdik fakat tek seferde verdik.
Kod:
for (var item in vbBank.keys){
//bankanın tüm keylerini gezecek
for(var money in vbBank[item]!){ //her bir key için örneğin ilk key için item ahmet oldu geldi buraya vbBank['ahmet'] te gez demiş oluyoruz o da bir listeydi 100,300,200 olan bir listede geziyoruz yani
if(money>150){ //her bir itemi için bu listenin 150 den büyük mü diye kontrol yapıyoruz bir tane büyük olan bulduğumuz anda return dediğimiz için döngü bitiyor
print('kredin hazır');
break; //for döngüsünün bitmesini istiyorsak return diyerek bitiriyoruz döngüyü tabi burada break dememiz daha mantıklı ilgili scope u sonlandırdığı için o yüzden break dedik
}
}
}
bankadaki müşterilerin hesalarının toplam mevlasını bulmak için
Kod:
for(var item in vbBank.keys){
int result = 0;
for(var money in vbBank[item]!){
result = result+money;
}
print("$item senin toplam paran --> $result");
}