Thread overview
char[] ları raw olarak nasıl vermeliyiz?
May 19, 2019
huseyin
Jun 06, 2019
huseyin
May 19, 2019

Merhaba,

D'de sık sık yaşadığım sorunlardan bir tanesi bu aslında. Biraz araştırdım ancak bir sonuç bulamadım umarım burada bulabilirim.

Bir char[] parametre alan fonksiyonum var:

void foo(char[] a){
//...
}

Ve ben bu fonksiyonu bu şekilde çağırmak istiyorum.

foo("Merhaba");

Bu durumda string to char[] ile ilgili bir hata alıyorum elbette peki char[]leri array olmadan bu şekilde yazmanın bir yolu yok mu? to! ile çevirmeden mümkün mü?

Edit: .dup metodunu denedim oldu ama verimli midir?

Teşekkürler

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

May 20, 2019
void foo(const(char)[] a) {
}

void main() {
 foo("Merhaba");
}

Şu da olur: 'void foo(const char[] a)'

Şu da olur:

void foo(T)(T a) {
}

Eğer yalnızca dizgi türleriyle işleyecekse şöyle kısıtlanabilir:

import std.traits;

void foo(T)(T a)
if (isSomeString!T) {
}

Evet, .dup kopyaladığı için masraflıdır.

Ben bu konulara şuralarda biraz kafa yormuştum:

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

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

http://ddili.org/ders/d/ozel_islevler.html (Kurucu parametresinin değişmezliği)

Ali

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

June 06, 2019

const kullanmak kesinlikle mantıklı bir çözümmüş. teşekkür ederim

Bu arada konu dışı olacak ama bu tarz şeyleri içeren bir hile sayfası(? cheatsheet) düzenleyip de ddili.org'a koysak güzel olmaz mı? D'de böyle bazı olaylarda takıldığımız oluyor gerek unutkanlık gerek mantığını bilmemekten. Bir forum başlığı altında herkes en genel takıldığı şeyleri yazsa biz de bunları derlesek hoş olabilirdi. Bu konuda fikriniz nedir @acehreli?

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

June 06, 2019

İyi fikir ama ben şu sıralar bunu başlatamayacak kadar meşgulüm.

İngilizce olarak şöyle güzel bir sayfa da var:

https://p0nce.github.io/d-idioms/

Ali

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