Andrei Alexandrescu, TDPL kitabında şöyle diyor: "... This implies that you cannot represent, say, the double quote character itself within a double-quoted WYSIWYG string. ..."
Yani " karaterini WYSIWYG türü bir dizgide doğrudan kullanamayız.
Bahsettiği dizgilere örnek olarak da şunları veriyor: r"like this", 'like that'.
Ve diyor ki, " karakterini WYSIWYG türü bir dizgide göstermenin tek yolu şu şekilde bir kullanım olabilir:
auto a = r"String with a \ and a " '"' " inside.";
Buradaki niyeti r"String with a \ and a " ve '"' ve " inside." dizgilerini birleştirmek. Bu üç dizgiden ilk ikisi WYSIWYG türünde. Andrei, farklı dizgi türlerinin birbiri ile birleşebileceğini söylüyor (aralarında boşluk olduğunda, yani juxtaposition durumunda).
Gel gelelim, bu örnek dmd 2.048 ile çalışmıyor (ya da ben birşeyi atlıyorum):
import std.stdio;
void main() {
auto a = r"ersin \" '"' " er";
writeln(a);
}
Derleme çıktısı:
escape.d(4): semicolon expected following auto declaration, not '34U'
escape.d(4): found '" er"' when expecting ';' following statement
Neden acaba?
(Bu arada WYSIWYG nedir diyenler için: http://tr.wikipedia.org/wiki/WYSIWYG )
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]