如何在D中正确命名字段`body`?

问题描述:

我想在我的D应用程序中有一个名为body的类字段。如何在D中正确命名字段`body`?

像这样:

class Posting 
{ 
    // ... 
    string heading, body, timestamp; 
} 

但是当我尝试编译这段代码,我得到一个错误:

source/app.d(8): Error: no identifier for declarator string 
source/app.d(8): Error: Declaration expected, not 'body' 

一些周围的Googling表明body是Dlang”关键字。但用另一个名称替换它会导致许多解决方法代码(我试图用yajl-d解析JSON)。

所以,问题是:我怎么能在我的班级名为body

这是D中最烦人的关键词之一,因为它可能很容易是别的,body是一个很常见的变量名。

但可惜的答案是,你不能在你的课堂上有一个名为body的字段。您可以尝试Bodybody_或其中的一些变化,但body不可能比名为class的变量可行。

最好的解决方案可能是修改yajl-d以使用来自用户定义的属性(如果存在)的覆盖名称,而不是编码或解码时的变量名称。这将是一个相当小的代码修改,功能getFieldNamehttps://github.com/repeatedly/yajl-d/blob/master/src/yajl/common.d应该这样做。

编辑:我继续前进,并在此叉上写下代码:https://github.com/adamdruppe/yajl-d自述现在显示一个示例。看到代码差异在这里:https://github.com/repeatedly/yajl-d/pull/6

+0

公关刚合并上游! – 2014-09-22 17:59:25