May 25, 2012

Zafer, struct niye kullan mıyorsun? Ali hocamın yazdığı çok güzel bir sınıf var ve struct'dan JSON'a güzelce çeviriyor. Okumada da sıkıntımız yok zaten.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 25, 2012

Alıntı (Salih Dinçer):

>

Zafer, struct niye kullan mıyorsun? Ali hocamın yazdığı çok güzel bir sınıf var ve struct'dan JSON'a güzelce çeviriyor. Okumada da sıkıntımız yok zaten.

Salih eğer AyarYöneticisi sınıfını kastediyorsan, ben yapıları (struct) detaylandırmaktan ziyade basit şekilde kullanmayı tercih ediyorum. Bu tür daha gelişmiş işlemleri sınıflar ile gerçekleştirmek bana daha doğal geliyor. Bilmiyorum belkide genelde bu şekilde çalıştığım için olabilir.

Şimdilik sadece değer okuma kısmı bitti, bundan sonra AyarYöneticisi sınıfına değer değiştirme ve ekleme beceriside kazandırmak niyetindeyim işte o zaman Ali'nin yazdığı toJSON metodunu kullanıcam. Ben sadece kodların son halini bir gözden geçirelim belki farklı fikirler ortaya çıkar diye kodları yayınladım.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 24, 2012

Güzel. Bu da derleme zamanında bilindiği ve hiç değişmeyecek olduğu durumlar için:

public class AyarYonetici
{
   private enum ayarTablosu = ["anahtar1": "deger1",
                               "anahtar2": "deger2",
                               "anahtar3": "deger3"];

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 25, 2012

Canım kardeşim, Ali hocam daha iyisini yapacaktır ama şöyle bir şey deneyim dedim:

import std.stdio;

class ass_arr
{
   string[string] table;
   string defaultKey;

   this() {
       table = ["bir": "BİR", "iki": "İKİ", "üç": "ÜÇ", "dört": "DÖRT"];
   }

   @property
   auto setValue(string str)
   {
       table[defaultKey] = str;
   }

   @property
   const auto shadowTable()
   {
       return table;
   }
}

void main()
{
   with(new ass_arr())
   {
       writeln(shadowTable["bir"]);

       defaultKey = "bir";
       setValue("BİRRRRRRRRRRRR");

       foreach(key, value; shadowTable) writeln(key, ":", value);

       shadowTable.rehash();
       writeln("..:rehash:..");

       foreach (key; shadowTable.keys) writeln(key);
   }
}

Ancak neden abece sırasına göre sıralama olmadığını anlamış değilim; herhalde hash ile ilgili bir durum?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 25, 2012

Alıntı (Salih Dinçer):

>

Canım kardeşim, Ali hocam daha iyisini yapacaktır ama şöyle bir şey deneyim dedim:

> import std.stdio;
>
> class ass_arr
> {
>     string[string] table;
>     string defaultKey;
>
>     this() {
>         table = ["bir": "BİR", "iki": "İKİ", "üç": "ÜÇ", "dört": "DÖRT"];
>     }
>
>     @property
>     auto setValue(string str)
>     {
>         table[defaultKey] = str;
>     }
>
>     @property
>     const auto shadowTable()
>     {
>         return table;
>     }
> }
> ```

>
Bir de önce sayfadaki ass_arr sınıfı ile şunu deneyim dedim de tıpkı std.file sınıfındaki gibi 'write()' yaparken aslında 'create()' yapmış oluyormuşuz...:)

void main()
{
with(new ass_arr())
{
writeln("Ben, silinmeden önce yazıldım-->", shadowTable["bir"]);
shadowTable.remove("bir");
foreach(key, value; shadowTable) writeln(key, ":", value);

   defaultKey = "bir";
   setValue("BİRRRRRRRRRRRR<--ve iki demeden geri geldim...:)");
   writeln();
   foreach(key, value; shadowTable) writeln(key, ":", value);
}

}


**Çıktısı:**
'Ben, silinmeden önce yazıldım-->BİR
dört:DÖRT
iki:İKİ
üç:ÜÇ

dört:DÖRT
iki:İKİ
bir:BİRRRRRRRRRRRR<--ve iki demeden geri geldim...:)
üç:ÜÇ
'

-- 
[ Bu gönderi, <http://ddili.org/forum>'dan dönüştürülmüştür. ]
May 24, 2012

Alıntı (zafer):

>

package{} konusunu bende tam olarak kavrayamadım ve kafamda hala isim alanları (namespace) ile karışık bir durumda duruyor.

package olarak işaretlenmiş olan olanaklar, bu modülün içinde bulunduğu klasördeki başka modüllere de açıktır.

Alıntı:

>

Eşleme tablosu gibi kullanabiliyormuyuz o enum mu?

enum, "derleme zamanında bilinen hazır değer" demek. Ancak değişmeyecekse enum olarak işaretlenebiliyor. Ayrıca tür çıkarsama olanağından yararlanmışım. Daha açıkça tür ismiyle de yazılabilir:

   private enum string[string] ayarTablosu = ["anahtar1": "deger1",
                                              "anahtar2": "deger2",
                                              "anahtar3": "deger3"];

Alıntı:

>

Alıntı (Salih Dinçer):

>

Öncelikle string deger = ayar.AyarAnahtari["anahtar2"]; satırındaki işlevi sanki eşleme tablosu gibi nasıl böyle kullanmayı düşünüyorsun?

Ali bu konuda diyeceğin bir şeyler varsa, müsait bir zamanında eklersen severek okurum :-D

AyarAnahtari bir işlev olduğuna göre aslında açıkça şöyle yazılabilir (parantezlere dikkat):

   string deger = ayar.AyarAnahtari()["anahtar2"];

O işlev bir eşleme tablosu döndürüyor ve onun "anahtar2"ye karşılık gelen elemanı elde ediliyor. AyarAnahtari() işlevi @property olarak işaretlenmiş olduğundan işlev parantezlerini yazmayabiliyoruz:

   string deger = ayar.AyarAnahtari["anahtar2"];

Aslında bir önceki çağrıyla aynı şey.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 25, 2012

Eline sağlık hocam, sayende eşleme tablolarının dibini bulacağız inşaallah...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 25, 2012

Alıntı (zafer):

>

Ali'den ricam eşleme tablosu konusuna, çalışma zamanında anahtar-değer ekleme işlemininde eklenmesi olacaktır.

Var ama çok kötü bir başlık seçmişim: Atama.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 25, 2012

O başlığı "Tabloya eleman ekleme" adı altında biraz daha genişlettim:

http://ddili.org/ders/d/esleme_tablolari.html

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 25, 2012

Alıntı (acehreli):

>

O başlığı "Tabloya eleman ekleme" adı altında biraz daha genişlettim:

Eline sağlık Ali, bu Dersane kitabı bence kitap yazma sistemine internetin olanaklarını kullanan yeni bir bakış açısı getiriyor. Ayrıca ortaya kesinlikle çok daha etkileyici ve dolu bir eser çıkıyor.

Alıntı (Salih Dinçer):

>

Eline sağlık hocam, sayende eşleme tablolarının dibini bulacağız inşaallah...

Salih, bence artık zamanı gelmeye başladı. Dibe vurmalıyız ki, tekrar yüzeye dönüş yolculuğuna başlayalım :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

1 2
Next ›   Last »