Jump to page: 1 2
Thread overview
August 31, 2009

C#'ta sanırım object diye bir genel tür vardı ve diğer türler bu türlerden elde edilmişti. D dilinde de böyle bir genel tür var mı. Yoksa eğer giriş işleminde int girişi beklerken string girişi alırsak ne yapabiliriz. Aklımda bir kaç fikir var ama sizden de yorum bekliyorum.

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

August 31, 2009

Atıyorum bir sayı oyunu yazdım. D bana gelişigüzel bir sayı seçiyor. Bende bir sayı giriyorum. bana aklındaki sayının girdiğim sayıdan daha büyük yada daha küçük olduğunu, bildiysem bildiğimi söylüyor ve tekrar oynamak ister misin diye soruyor yada sayı gireceğim yerde 'h' yazınca programdan çıkıyor. Bunun içinde sayı girersem işaretçiyle atadığım sayıya int olması gerekecek. ama oyundan çıkmak istersem işaretçi ile atadığım değişkenin string olması gerekiyor. Tabi string atayıp inte çevrilmesi gerekiyorsa sonradan da çevirebilirim. ama ben bunun için genel bir tür oluşturabilir miyim diye soruyorum.

c# tada genel türün adı object di . ama d de kullanamadım

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

August 31, 2009

Çok teşekkürler. Benim asıl sormak istediğim http://tr.wikibooks.org/wiki/C_Sharp_Programlama_Dili/De%C4%9Fi%C5%9Fkenler#object bu özzellik var mı.

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

August 31, 2009

Her sınıfın en üstünde 'object' sınıfı var. Ama bunun kapsama anlamına geldiğini söyleyemeyiz.

Ayrıca D'nin tür sistemi C++'dan bile daha sağlam olduğu için int'in içine string okuyamayız. Yanılmıyorsam okuma işlemi sırasında bir hata [exception] atılır.

Tam olarak nasıl bir durum düşünüyorsun?

Ali

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

August 31, 2009

Kendin genel bir tür oluşturabilirsin, ama o da sonuçta mutlaka dizgi olarak almak ve sonra kendisi int'e dönüştürmek zorundadır.

Bunun nedeni, girişin bir karakter akımı olmasıdır. İçinde ne olduğunu anlayabilmek için öncelikle mutlaka bir dizgiye alınması gerekir. int okurken de arka planda zaten kütüphane önce bir dizgiye okur ve ondan sonra int'e dönüştürür.

import std.stdio;
import std.cstream;
import std.conv;

void main()
{
   write("Sayı veya 'h' lütfen: ");
   dchar[] girdi;
   din.readf(&girdi);

   if (girdi == "h") {
       writeln("Güle güle...");

   } else {

       try {
           int değer = to!int(girdi);
           writeln("Teşekkür: ", değer);

       } catch (ConvError e){
           writeln("Bak bu olmadı işte! :)");
       }
   }
}

Ali

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

August 31, 2009

Temel türlerin object'ten türediklerini hiç sanmıyorum. Sınıfların üstünde object vardır ama temel türler sınıf olmadıkları için onların yalnızca bir kaç niteliği [property] vardır.

Ali

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

August 31, 2009

Hayır yok, ve D'nin atası olan C mantığına da çok ters. Kuvvetli tür denetimi [strongly type-safe] sağlayan dillerde derleme zamanında tür uyumluluğu şarttır.

Boost kütüphanesinin Any veya Variant türleri C++'nın bu kısıtlamasının önüne geçerler ama onlar da tür güvenliğini çalışma zamanında hata atarak sağlarlar.

Ali

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

September 01, 2009

Alıntı:

>
> int değer = to!int(girdi);
> ```

>

Buradaki '!'(ünlem) ne işe yarıyor. Daha önce uniform'da da vardı. Orada da başlangıç ve sonuç değerini kapsayıp kapsamayacağını gösterirken kullanıyorduk.

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

Cevabınız için çok teşekkür ederim. Bu to çok güzelmiş. Şuan deneyemiyorum ama veri kaybı olsada double'ı integer'a filan çevirir değil mi. Birde ! görünüşü diğerlerinden daha güzel. D de en çok sevdiğim şeylerden biriside kodların görünüşü :-) Hem kodların rahat okunmasınıda sağlıyor.

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

September 01, 2009

Evet pythonunda güzel ve temiz bir görünüşü var. Artık üçüncü sürümünde de D gibi türkçe değişkenler kullanılabiliyor. ama kimse 3'e geçemiyor. Ve nedense ben şuana kadar D nin görünüşünü Pythondan daha çok sevdim.

Nedense girintilemeyi sevmiyorum. Çok kırılgan oluyor. İstersen her dilde girintili yazarsın ama küme parantezi sayesinde kırılgan olmuyor. Bu kırılganlık yüzünden ve bazı özelliklerden dolayı şirketlerde varsayılan dil olarak kullanılmayacaktır. Sadece hızlı bir şekilde programı denemek için kullanılcak.

Ama Doğrusu php'ye bakan biri hepsine şükreder :-D Php'de sevdiğim tek nokta nedense koda baktığında fonksiyon ne işe yarar anlıyorsun. Python'da pek böyle değil. Bunu başkasıda demişti. Ama php'de doğru düzgün bir görünüme sahip değil. Çoğu kişi karma kod yazıyor. Kodlar anlaşılmıyor. Hatta sen bile bir süre sonra yazdığın kodu anlamyorsun :-D

Benim asıl merak ettiğim şey hızları. D ile Python'da aynı sayıda hello world çıktısı yazdırdım. İkiside eşit hızda yazdı. Derlemeli dilin farkı ne o zaman. Hızlı olmadıktan sonra yorumlamalı dil daha iyi olmaz mı. Ne için aynı hızda yazdı hala anlamadım.

D de şuanlık sevmediğim tek bir şey var. O da web programcılığı düzgün olarak yapılmıyor. :-( Aslında şuanda varolan bütün modern programlama dillerinde web programlama çok iyi bir şekilde yapılıyor. C# Java Python Ruby Php(6.sürümünden sonra Masaüstü programcılığı hakkında oldukça ilerleme olacak diye duymuştum.) Perl...

Birde D2 hiç kararlı gözükmüyor. Bu pek önemli değil. Ben öğrenene kadar 3.sürüm çıkar :-) Ama bu yüzden belgelendirme çalışmasıda çok zayıf. Bu açıdan en iyisi Php birde C# olabilir.

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

« First   ‹ Prev
1 2