什么是红宝石惯例用于表示一个人在作为对象中的字段时的性别或性别?存在二元性别假设(不是我同意这一点,但数据通常以这种方式收集)。
您会针对不同情况使用不同类型吗?当我们向用户显示此信息时,我们希望以一种有意义的方式显示它(Male
,male
,M
,无论如何,不是0
或1
),我们可能想用它来按性别对对象进行排序。我的想法是使用:Male
和:Female
之类的符号,但我想听听有更多Ruby经验的人的想法。
虽然我找到了一些建议(编写自己的替代枚举代码并创建了一个Gender类),但我没有发现任何将此方法与使用布尔值,符号,字符串,字符进行比较或对比的内容,或者将其识别为常见约定。
答案 0 :(得分:0)
我认为,在现代编程中,尤其是像Ruby这样的语言中,使用像0
这样的幻数,1
被认为是一种不好的做法。然后,自然的选择是为每个性别/性别使用字符串,符号或特定类。对于封闭类,应避免使用字符串。当使用符号时,我认为使用完整的单词而不是缩写是标准的,并且使用小写(如果不是单词则使用下划线)。所以我认为:male
和:female
将是一个不错的选择。或者,您可以拥有Male
和Female
个类,每个类都有一个唯一的对象,就像FalseClass
和TrueClass
一样。或者,您可以简单地定义两个Object
实例Male
和Female
。由于性别/性别之间没有自然顺序,因此您需要定义自己的<=>
。