Em D, como passar uma cadeia vazia? (A gtkD)
Pergunta
Usando D1 com phobos
Eu tenho um campo de entrada de texto, instância de gtk.Entry.Entry
,
chamando setText("")
levanta um erro de tempo de execução
Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed
Por quê? Parece ser um problema com D, eu tentei isso:
string empty = "";
assert (empty != null);
my_entry.setText(empty)
O programa terminou como a afirmação falhou.
Como posso resolver isso?
Solução
Eu não acho D realmente diferencia entre "string vazia" e "cadeia nula". Uma solução barata seria setText (" ").
[editar] Nevermind que. É um bug no gtkD. no tronco / src / glib / Str.d (graças wm4 para encontrá-lo), linha de troca 147 para retornar ""; (Remover o .dup).
Outras dicas
Você deve escrever assert (! Empty é nulo) em vez de assert (vazio! = Null)
Eu costumava "\0"
e parecia trabalho,
Eu não sei se algum personagem invisível entrou no campo de texto, mas isso é baseado na suposição de que uma string vazia em C é apenas \0