Class 如何正确命名D中的字段“body”?

Class 如何正确命名D中的字段“body”?,class,naming-conventions,d,Class,Naming Conventions,D,我希望在我的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' 一些谷歌搜索显示,b

我希望在我的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'
一些谷歌搜索显示,
body
是一个Dlang'关键字。但是用另一个名称替换它将导致许多变通代码(我试图用
yajl-d
解析JSON)


所以,问题是:在我的类中,如何将字段命名为
body

这是D中最烦人的关键字之一,因为它很容易是其他的东西,body是一个非常常见的变量名

但遗憾的是,答案是类中不能有名为body的字段。您可以尝试
Body
Body
或其一些变体,但是
Body
与名为
class
的变量一样不可行

最好的解决方案可能是修改
yajl-d
,在编码或解码时使用来自用户定义属性(如果存在)的覆盖名称,而不是变量名称。这将是对代码的一个相当小的修改,函数
getFieldName
from应该可以做到这一点


编辑:我继续在这个fork上编写代码:自述文件现在显示了一个示例。请参见此处的代码差异:

这是D中最烦人的关键字之一,因为它很容易是其他的东西,body是一个非常常见的变量名

但遗憾的是,答案是类中不能有名为body的字段。您可以尝试
Body
Body
或其一些变体,但是
Body
与名为
class
的变量一样不可行

最好的解决方案可能是修改
yajl-d
,在编码或解码时使用来自用户定义属性(如果存在)的覆盖名称,而不是变量名称。这将是对代码的一个相当小的修改,函数
getFieldName
from应该可以做到这一点


编辑:我继续在这个fork上编写代码:自述文件现在显示了一个示例。请参见此处的代码差异:

,PR刚刚被上游合并!公共关系刚刚被上游合并!