Forum: D Programlama Dili RSS
with deyimi
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: with deyimi
Ben with deyimini derslere eklemeyi düşünmüştüm ama sonra hem o kadar yararlı bulmadığım için hem de hakkında olumsuz yorumlar da duyduğum için vazgeçtim.

Şimdi Alexandrescu'nun kitabında karşıma çıktı. Hiç olmazsa bulunsun diye bir örnek vereceğim. with, bir blok açıyor ve blok içinde kullanılan isimlerin hangi nesnenin üyeleri olduklarını başından söylüyor:

struct Yapı
{
    int a;
    int b;
    int c;
}
 
void main()
{
    Yapı nesne;
 
    with (nesne) {
        a = 1;
        b = 2;
        c = 3;
    }
}

Böylece açıkça nesne.a yazmak zorunda kalmıyoruz.

with, D'ye Pascal'dan geçmiş. Ben C kökenli bir programcı olduğum için kendimce yararını anlamadım. :) Sanki yarardan çok karışıklık getirirmiş gibi de hissediyorum. Kod içinde a görüyoruz; onun ne olduğunu anlamak için kodun bir with içinde geçtiğini farketmek gerekiyor.

Ali
emre413 (Moderatör) #2
Kullanıcı başlığı: Celal Emre ÇİÇEK
Üye Tem 2009 tarihinden beri · 62 mesaj · Konum: Kırıkkale
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Visual Basic'te de vardı bu. Bence de mantıksız ama gerekeceğine çok ihtimal vermediğim uzun obje isimlerinde yararlı olabilir.
canalpay (Moderatör) #3
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bana yararlı gibi geldi. Sadece tek bir nesneyi kullandığımızda ve bu nesne çok büyükse oldukça yararlı olabilir. Ayrıca heryere nesne.bilmemne yazmak yerine with ile yazmakta iyi.

Yani olmazsa bir şey kaybetmezdik ama bana göre büyük bir projede kullanılırken bazı küçük yararlılıklar getireceğini düşündüğüm bir olanak.
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 00:26:35 (UTC -08:00)