gpt4 book ai didi

c - Ruby C 扩展开发人员的命名约定

转载 作者:数据小太阳 更新时间:2023-10-29 06:44:29 26 4
gpt4 key购买 nike

在用 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 代码的扩展时,如果没有可遵循的指南,很容易造成困惑。

某处有明确的 list 吗?在谷歌搜索 Ruby C 扩展主题时,我似乎从来没有找到有用的结果。有没有显示纯 Ruby 语法和正确命名的等效 C 函数的快速示例?

最佳答案

这里还有一些:http://geoffgarside.co.uk/2007/05/20/ruby-c-extensions-nested-modules-classes/

Geoff Garside 有几十个用 ruby​​/C 编写的代码库。他是非常可靠的海事组织。 https://github.com/geoffgarside

我会继续寻找更多,并在找到更多时编辑这篇文章。

编辑

看起来很难找到想要谈论 ruby​​ 扩展命名约定的人......也许你可以尝试向 M. Garside 的方向发送推文/电子邮件。他在 twitter 上看起来很活跃.

关于c - Ruby C 扩展开发人员的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12460916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com