如何在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的字段。您可以尝试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
公关刚合并上游! – 2014-09-22 17:59:25