簡體   English   中英

Ruby C擴展開發人員的命名約定

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM