[英]Naming conventions for Ruby C extension developers
我有興趣在C語言中為ruby編寫擴展時遵循正確的命名約定。具體來說,我指的是將_p
添加到謂詞的函數名稱和前綴變量的內容,其中m
代表模塊, 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函數的快速示例?
以下是更多內容: http : //geoffgarside.co.uk/2007/05/20/ruby-c-extensions-nested-modules-classes/
Geoff Garside有幾十個以ruby / C編寫的回購。 他是相當可靠的IMO。 https://github.com/geoffgarside
當我找到更多時,我會繼續尋找更多並編輯這篇文章。
編輯
看起來很難找到想要談論ruby擴展命名約定的人......也許你可以嘗試在M. Garside的指導下發送推文/電子郵件。 他在推特上看起來非常活躍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.