2014-09-22 38 views
0

我想在我的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

回答

6

這是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