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

shy*_*cha 0 d class naming-conventions

我想body在我的D应用程序中有一个类字段.

像这样:

class Posting
{
    // ...
    string heading, body, timestamp;
}
Run Code Online (Sandbox Code Playgroud)

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

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

一些谷歌搜索显示这body是一个Dlang'关键字.但是用其他名称替换它会导致许多变通方法代码(我试图解析JSON yajl-d).

所以,问题是:我怎样才能body在班上命名?

Ada*_*ppe 6

这是D中最烦人的关键词之一,因为它很容易成为别的东西,而body是一个非常常见的变量名.

但唉,答案是你的课堂上不能有一个名为body的字段.您可以尝试Body或者对其进行body_一些修改,但body不比命名的变量更可行class.

最好的解决方案可能是修改yajl-d使用用户定义属性的覆盖名称(如果存在),而不是编码或解码时的变量名称.这对代码来说是一个相当小的修改,getFieldName来自https://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