0

As far as I know, Ruby has some convention on letter capitalization. Does it have any convention about :UPPERCASE_SELECTORS?

4

1 回答 1

2

你说的是语言还是社区?

在该语言中,没有什么可以阻止您在方法名称和/或消息选择器中使用所需的任何 Unicode 字符。可能无法通过定义它们def或通过调用它们.,但可以使用反射。

如果你想通过定义它们def或者用 调用它们.,那么还有很大的空间:名称需要以下划线或字母开头(Unicode 字母完全可以,即µ是一个完全有效的方法名称),然后是任意数量的字母、数字和下划线,可选择以问号、感叹号或等号结尾。

以大写字母开头、包含大写字母甚至完全大写都是完全有效的。

然而,它不是惯用的。反正通常不会。惯用的方法名称是snake_case,即以小写字母开头,由下划线分隔的小写单词组成,仅包含 ASCII 字符。

然而,也有例外。特别是,旨在作为特定类的工厂伙伴的方法可能与相应的类具有相同的名称。例如,将其参数转换为数组、哈希、字符串、浮点数或Kernel#Array整数Kernel#HashKernel#String方法Kernel#FloatKernel#Integer

另一个例外是旨在像参数类一样使用的Object#DelegateClass方法,例如delegatestdlib 中库中的方法,它接受一个类并返回该类的包装类,因此可以像这样使用它:

class MyArray < DelegateClass(Array); end
于 2013-03-06T02:09:36.657 回答