- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 Rebol 3 (posix/fann/math) 做一些扩展。
为了避免全局命名空间污染,我使用简单的前缀源标识符导出函数。例如:POSIX-FORK
对于 fork
, 或 POSIX-NANOSLEEP
对于 nanosleep .
有没有更好的方法或官方 Rebol 命名约定?
最佳答案
这是 Rebol 导出的非常标准的命名约定,尽管它们在代码中当然应该是小写的。当指代聊天客户端或网站中无法显示代码(如 this
)的函数时,全大写只是一种命名约定。 .您通常不会在 Rebol 代码中将任何单词大写,除非它们用于其他用途。
但是,如果您想避免全局命名空间污染,请使用 options: [private]
声明您的扩展模块。标题。这将使您的模块的导出仅由使用 import
明确请求它们的模块或脚本导入。或 needs
标题。这尤其适用于导出低级 C 类 API 的模块或扩展,这些 API 最好仅由实现高级包装器的模块导入。最好记住扩展的模块部分是一个完整的 Rebol 模块,通常最好将高级包装代码放在那里,根本不导出类 C 函数,让它们供内部使用。
另一个技巧是,当您导出常量或枚举值时,最好将它们放在模块中的一个对象中,然后导出该对象。这样您就不会导出到全局命名空间,并且可以保护单词不被修改。
另一个技巧是根本不导出东西,让人们使用 import
导入你的模块。功能。除非您将模块的单词标记为隐藏,否则即使它们没有导出,它们仍然可用。不过在大多数情况下这有点不方便,所以最好使用私有(private)模块。您还可以导出您的高级 API 而不是导出您的低级 API,因此如果有人想使用低级 API,则可以导入它。
在这里查看有关如何使用模块和扩展的更全面的答案:How are words bound within a Rebol module?
关于Rebol、扩展和函数命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15773026/
C语言sscanf()函数:从字符串中读取指定格式的数据 头文件: ?
最近,我有一个关于工作预评估的问题,即使查询了每个功能的工作原理,我也不知道如何解决。这是一个伪代码。 下面是一个名为foo()的函数,该函数将被传递一个值并返回一个值。如果将以下值传递给foo函数,
CStr 函数 返回表达式,该表达式已被转换为 String 子类型的 Variant。 CStr(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CSng 函数 返回表达式,该表达式已被转换为 Single 子类型的 Variant。 CSng(expression) expression 参数是任意有效的表达式。 说明 通常,可
CreateObject 函数 创建并返回对 Automation 对象的引用。 CreateObject(servername.typename [, location]) 参数 serv
Cos 函数 返回某个角的余弦值。 Cos(number) number 参数可以是任何将某个角表示为弧度的有效数值表达式。 说明 Cos 函数取某个角并返回直角三角形两边的比值。此比值是
CLng 函数 返回表达式,此表达式已被转换为 Long 子类型的 Variant。 CLng(expression) expression 参数是任意有效的表达式。 说明 通常,您可以使
CInt 函数 返回表达式,此表达式已被转换为 Integer 子类型的 Variant。 CInt(expression) expression 参数是任意有效的表达式。 说明 通常,可
Chr 函数 返回与指定的 ANSI 字符代码相对应的字符。 Chr(charcode) charcode 参数是可以标识字符的数字。 说明 从 0 到 31 的数字表示标准的不可打印的
CDbl 函数 返回表达式,此表达式已被转换为 Double 子类型的 Variant。 CDbl(expression) expression 参数是任意有效的表达式。 说明 通常,您可
CDate 函数 返回表达式,此表达式已被转换为 Date 子类型的 Variant。 CDate(date) date 参数是任意有效的日期表达式。 说明 IsDate 函数用于判断 d
CCur 函数 返回表达式,此表达式已被转换为 Currency 子类型的 Variant。 CCur(expression) expression 参数是任意有效的表达式。 说明 通常,
CByte 函数 返回表达式,此表达式已被转换为 Byte 子类型的 Variant。 CByte(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CBool 函数 返回表达式,此表达式已转换为 Boolean 子类型的 Variant。 CBool(expression) expression 是任意有效的表达式。 说明 如果 ex
Atn 函数 返回数值的反正切值。 Atn(number) number 参数可以是任意有效的数值表达式。 说明 Atn 函数计算直角三角形两个边的比值 (number) 并返回对应角的弧
Asc 函数 返回与字符串的第一个字母对应的 ANSI 字符代码。 Asc(string) string 参数是任意有效的字符串表达式。如果 string 参数未包含字符,则将发生运行时错误。
Array 函数 返回包含数组的 Variant。 Array(arglist) arglist 参数是赋给包含在 Variant 中的数组元素的值的列表(用逗号分隔)。如果没有指定此参数,则
Abs 函数 返回数字的绝对值。 Abs(number) number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。
FormatPercent 函数 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 FormatPercent(expression[,NumDigitsAfterD
FormatNumber 函数 返回表达式,此表达式已被格式化为数值。 FormatNumber( expression [,NumDigitsAfterDecimal [,Inc
我是一名优秀的程序员,十分优秀!