Forum: Duyurular RSS
'const parametre mi, immutable parametre mi?' başlığı
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ı: 'const parametre mi, immutable parametre mi?' başlığı
Değişmezlik bölümüne yeni bir başlık ekledim:

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

Böylece const ve immutable konusunu artık iyice anladığımı ve orada sıraladığım ilkelerin doğru olduklarını düşünüyorum. :)

Ali
Avatar
Salih Dinçer #2
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Okumaya başladım emeklerin için teşekkürler....

Kendi adıma söylemek gerekirse, o an için derleyici hangisini kabül edersen onu kullanıyorum...:)

Elbette kabül ettiği ve derleme hatası alınabilecek olasılıklar olmalı. Öyle ya, bir if else sorgusunda bile bir çok olaslılık* var. Gerçi derleyici bütün bunları sorgulayıp da derliyor olmalı, öyle değil mi?. Tabi dersteki örnek gibi bir çevre biriminden (örneğin klavye girişi) alından değeri beklediğinde bazı olasılıklar ihmal ediliyor.

Şu ikinci cümlemdeki tutumumdan bu dersin gereksiz olduğu düşüncesi çıkmasın! Ben bir süre sonra unutuyor olmalıyım ya da aklımda şu algoritmayı nasıl bir cinlikle yola getirsem diye düşündüğümden bu önemli konuyu derleyicinin inisiyatifine bırakıyorum...:)

(*) Hocam, son İstanbul buluşmasında Yaşar hocam ile birlikte kitaplardan bahsetmiştik. Sanırım "C'de 99 hata olasılığı" gibi bir kitapdı. Ancak başlığını bile yanlış hatırladığımdan eminim ki 99 muydu 97'di miydi emin değilim. Lafı gelmişken bu bilgiyi rica edebilir miyim?
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
acehreli (Moderatör) #3
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ı
Salih Dinçer:
Kendi adıma söylemek gerekirse, o an için derleyici hangisini kabül edersen onu kullanıyorum...:)

Neden olmasın. :)

C++'ta çok kolaydı: Olabilen her değişkeni ve parametreyi 'const' olarak işaretlemek yetiyordu. Değişkenler 'const' olduklarında yanlışlıkla değiştiremiyorduk ve programcılara onun son değerini aldığını belgeliyorduk. Parametreler 'const' olduklarında ise işlev hem değişebilen hem de 'const' değişkenle çağrılabiliyordu.

D'nin 'immutable' belirteci çok yararlı ama parametrede kullanıldığında bir gerekçe de getiriyor: Aynı 'const'ta olduğu gibi, işlev parametreyi değiştirmeyeceği sözünü veriyor; orası tamam; ama bir de 'immutable' olmasını şart koşmuş oluyor. İşte o şart koşma hali durumları karıştırıyor. 'inout' anahtar sözcüğü bu duruma bir çözüm olarak düşünülmüş ama hem tasarımı tam değil hem de gerçekleştirmesi.

Elbette kabül ettiği ve derleme hatası alınabilecek olasılıklar olmalı. Öyle ya, bir if else sorgusunda bile bir çok olaslılık* var. Gerçi derleyici bütün bunları sorgulayıp da derliyor olmalı, öyle değil mi?. Tabi dersteki örnek gibi bir çevre biriminden (örneğin klavye girişi) alından değeri beklediğinde bazı olasılıklar ihmal ediliyor.

O söylediklerini anlamadım. :)

"C'de 99 hata olasılığı" gibi bir kitapdı.

Alfa Yayınları'nın sitesinde "C++" sözcüğünü aratınca çıkan şu kitapların iyi olduklarını biliyorum:

  • Sıra Dışı C++ (Cilt 1), Herb SUTTER

  • Sıra Dışı C++ (Cilt 2), Herb SUTTER

  • C++ 99 Tuzak ve Çözümleri, Stephan C. DEWHURST

Ali
Avatar
Salih Dinçer #4
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ek bilgiler için teşekkürler...

acehreli:
"Salih Dinçer":
Elbette kabül ettiği ve derleme hatası alınabilecek olasılıklar olmalı. Öyle ya, bir if else sorgusunda bile bir çok olaslılık* var. Gerçi derleyici bütün bunları sorgulayıp da derliyor olmalı, öyle değil mi?. Tabi dersteki örnek gibi bir çevre biriminden (örneğin klavye girişi) alından değeri beklediğinde bazı olasılıklar ihmal ediliyor.

O söylediklerini anlamadım. :)

Demek istiyorum ki; derleyici iş başındayken, mesela bir işevin (içinde bir çok if else sorgusu var!) döndürmesi gereken değeri (örn. return cast(bool) ... ) gerçekten de her olasılıkta döndürüp döndürmediğini test ediyor olmalı. Bu örneği şu yüzden verdim: Bazı zaman derleyici bana diyor ki "sen n'apıyorsun, şu satır hiç bir zaman istediğim değeri döndürmeyecek), bakıyorum bunu nasıl da bulmuş ve dikkatimden kaçmış. Herhalde olası tüm pozisyonları test ediyor olmalı?

Beraberinde bu dersin konusu olan sabitleri de her türlü (girişten okunabilen değerler hariç) test ediyor olmalı. Özetle D'yi seviyorum...:)

Çünkü kendisi çok akıllı, öyle ki yanlış yazdığım bir nesnenin ismini en yakın olasılıkta olanını önererek işimi kolaylaştırıyor. Tabi yanıldığı zamanlar yok değil hani...:D
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
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:
Forum: Duyurular RSS
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-22, 02:42:04 (UTC -08:00)