当将它用作对象中的字段时,用于表示人的性别的 ruby 约定是什么?存在二元性别假设(不是我同意这一点,但通常以这种方式收集数据)。
您会针对不同的情况使用不同的类型吗?当我们向用户显示此信息时,我们希望以某种有意义的方式显示它(Male
、male
、M
等等,而不是 0
或 1
),我们可能想用它来按性别对对象进行排序。我的想法是使用 :Male
和 :Female
之类的符号,但我想听听有更多 Ruby 经验的人的想法。
虽然我找到了一些建议(编写您自己的替代枚举代码并创建一个 Gender 类),但我没有找到任何可以比较或对比这种使用 bool 值、符号、字符串、字符的方法,或者将其标识为常见的方法约定。
最佳答案
我认为,在现代编程中,尤其是在像 Ruby 这样的语言中,使用像 0
这样的魔数(Magic Number)。 , 1
正如您所说,这被认为是一种不好的做法。然后,自然的选择是为每个性别/性别使用字符串、符号或特定类。对于封闭类,您应该避免使用字符串。使用符号时,我认为使用完整的单词而不是缩写是标准的,并且使用小写字母(如果不仅仅是一个单词,则使用下划线)。所以我觉得:male
和 :female
会是一个不错的选择。或者,您可以使用 Male
和 Female
类,每个类都有一个独特的对象,就像 FalseClass
和 TrueClass
.或者,您可以简单地定义两个 Object
实例 Male
和 Female
.由于 gender/sex 之间没有自然排序,因此您需要定义自己的 <=>
.
关于表示性别或性别的 Ruby 约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15030036/