我有興趣在爲C中的ruby編寫擴展時遵循正確的命名約定。具體而言,我指的是將_p
添加到謂詞和前綴變量的函數名稱,模塊爲m
,c
for class etc.Ruby C擴展開發人員的命名約定
例如,如果我們想要在C中定義類似下面的謂詞方法,我們應該在定義該方法的函數中使用_p
作爲後綴。
class MyClass
def awesome?
true
end
end
在C:
static VALUE my_extension_my_class_awesome_p(VALUE self) {
return Qtrue;
}
void Init_my_extension(void) {
VALUE cMyClass = rb_define_class("MyClass", rb_cObject);
rb_define_method(cMyClass,
"awesome?",
my_extension_my_class_awesome_p,
0);
}
通過核心Ruby源代碼我看到_p
(謂語)和_m
後綴,這我無法從推斷的意義看。我相信還有其他一些公約。
還有其他命名約定,例如何時使用下劃線以及何時使用駱駝套管。在編寫具有大量C代碼的擴展時,如果沒有遵循指南,很容易造成混亂。
是否有確切的清單?在搜索Ruby C擴展主題時,我似乎從未找到有用的結果。任何顯示純Ruby語法和正確命名的C函數的快速示例?
我猜_m是方法的後綴。 – Linuxios
我假設你使用英文而不是日文寫的指南,對不對? >< –
@AndrewGrimm有一篇用日文寫的令人敬畏的指南,有一些部分工作將其翻譯成英文(http://rhg.rubyforge.org/),但是,很狡猾:) – d11wtq