Thread overview
Basit bir enum deneyimi...:)
Feb 18, 2013
Salih Dinçer
Feb 19, 2013
Salih Dinçer
February 18, 2013

Can sıkıntısı işte, ne zamandır ihtiyaç duyuyordum böyle bir şeye:

enum { BA, BS, LF, FF, HT, VT }
char _(T)(T karakter) @property {
 switch(karakter) {
   case BA: return  7; // Bell Alert (blinking window on new OS)
   case BS: return  8; // Back Space
   case LF: return 10; // Line Feed = '\n'
   case FF: return 12; // Form Feed = '\r'
   case HT: return  9; // Horizantal Tab = '\t'
   case VT: return 11; // Vertical Tab = '\n...\t'
   default: return  0; // Null
 }
}

Aslında bu enum&işlev ikilisi yerine, sadece ('cast'('char')'8'.writeln(" "); satırını pekala kullanabilirdik. Ama bana bu cast'leri yazmak ölüm geliyor. Bir de UFCS ile birlikte kullanırken parantez kullanma zorunluluğuna dellenmeden edemiyorum...:)

Özetle, metin tabanalı uygulamalarda iş kolaylaştıracak basit bir şey işte. Örneğin:

import std.stdio: write;

void main() {
 string[3] D = [ " D", "Dilini,", "Dünyalar kadar seviyorum..."];
 "Bu bir deneme:".write(D[0], VT._);
 BS._.write(D[1]);
 foreach(gerigel; D[1]) BS._.write;
 VT._.write(D[2], LF._);
 BA._.write; // Öyle ki pencere bile buna göz kırpıyor...:)
}

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

February 19, 2013

Olmuyor işte hocam olsa...:)

Benim mutlaka bir belirteç ve parametre gibi kullanmam lazım. Nedense write() elemanın ismini yazıyor:

void main()
{
  enum _ : char { BA = 7, BS = 8, LF = 10, FF = 12, HT = 9, VT = 11 }
  write("Bu bir deneme:");
  _.BS.writeln;
  " ".writeln(_.BA);
}/*
Bu bir deneme:BS
BA*/

Bu olay nedense Rhodeus Script'de çok daha kolay. Bir ara onu da paylaşacağım...

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

February 19, 2013

enum'un gerçekleştirme türünü biz belirleyebiliriz:

enum : char { BA = 7, BS = 8, LF = 10, FF = 12, HT = 9, VT = 11 }

Ali

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

February 19, 2013

O alt çizgi yüzünden oluyor. enum'a isim vermeyince bütün o hazır değerler 'char' türünde oluyorlar. Bu çalışıyor:

  enum : char { BA = 7, BS = 8, LF = 10, FF = 12, HT = 9, VT = 11 }
  write("Bu bir deneme:");
  BS.writeln;
  " ".writeln(BA);

Ali

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