December 06, 2012

Merhaba,

Az önce Phobos kütüphanesi (https://github.com/D-Programming-Language/phobos)ni geziyorken www.dlang.org'da ne tür güncellemeler olmuş diye baktım. Gerçi daha önce bir yerlerde sözü geçmiş ve Ali hocam cevaplamıştı; belki de benim gibi bir çokları da ihtiyaç duymuş, sormuş ve yoğunluğu azaltmak için siteye eklenmiş basit bir örnek gördüm. D'de isimsiz yapılar olmadığı için şu şekilde bir karşılık yazmılar:

union Info  // C code
{
 struct
 {
   char *name;
 } file;
};

---

union Info  // D code
{
 private struct File
 {
   char* name;
 }
 File file;
}

Ama örnekten amaç anlaşılmıyor olabilir. Peki, diyelim ki elinizde bir IP adresi var ve birliğin ilk elemanına bunu yazıyoruz. Oluşturduğumuz ve ikinci eleman olan yapının ismi ise "parçalar" olsun. Siz bu IP adresinin matematiksel açıdan parçalayıp her bölümünü (öyle ya IP adresleri aslında bir sayıdır ve bölüm bölümdür) parçalar.A, parçalar.B gibi erişmek istiyorsunuz.

Bakınız şimdi hatırladım şurada konuşmuştuk: http://ddili.org/forum/thread/1015

Bu örnekt de çok güzeldir ve bence yeni başlayanların bile öğrenmesi iyi olabilir. Çok pratik şeyler yapılabilir.

Başarılar...

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

December 06, 2012

Alıntı (Salih Dinçer):

>

Ama örnekten amaç anlaşılmıyor olabilir.

Bunun en büyük nedeni de araya bir de union sıkışmış olması. :) Onun bu konuyla hiç ilgisi yok aslında.

Şu C kodu da yeterli:

struct
{
 char *name;
} file;

O tanımda iki şey birden oluyor: İsimsiz bir yapı tanımlanıyor ve o yapının türünden olan 'file' isminde bir nesne tanımlanıyor. O C kodunu yine C'de şöyle de yazabilirlerdi:

struct File
{
 char *name;
};

typedef struct File File; // Bu satır ile üsttekini birleştirmek de mümkün

File file;

İşte bu kod D'ye bire bir geçirilebiliyor. (struct'ın sonundaki noktalı virgül fazla vs. ama o kadar yani.)

Aslında yukarıdaki iki kod arasında bir fark var: Adını anamayacağımız için isimsiz yapının türünden olan yalnızca tek nesne olabilir; o da 'file'... İsim verince başka nesneler de oluşturabiliyoruz. Ama bunun programcılıkta gerektiğine veya işe yaradığına hiç rastlamadım.

Ali

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