Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 代表性别或性别的红宝石公约_Ruby_Oop_Types_Conventions - Fatal编程技术网

Ruby 代表性别或性别的红宝石公约

Ruby 代表性别或性别的红宝石公约,ruby,oop,types,conventions,Ruby,Oop,Types,Conventions,在将ruby用作对象中的字段时,ruby约定用于表示一个人的性别是什么?有一个二元性别假设(我并不同意这一点,但数据通常是以这种方式收集的) 您会在不同的情况下使用不同的类型吗?当我们向用户显示此信息时,我们希望以某种有意义的方式显示它(Male,Male,M,无论什么,而不是0或1),我们可能希望使用它按性别对对象进行排序。我的想法是使用:男性和:女性之类的符号,但我想听听对Ruby有更多经验的人的想法 虽然我找到了一些建议(编写您自己的替代枚举代码并创建一个性别类),但我没有找到任何东西将这

在将ruby用作对象中的字段时,ruby约定用于表示一个人的性别是什么?有一个二元性别假设(我并不同意这一点,但数据通常是以这种方式收集的)

您会在不同的情况下使用不同的类型吗?当我们向用户显示此信息时,我们希望以某种有意义的方式显示它(
Male
Male
M
,无论什么,而不是
0
1
),我们可能希望使用它按性别对对象进行排序。我的想法是使用
:男性
:女性
之类的符号,但我想听听对Ruby有更多经验的人的想法


虽然我找到了一些建议(编写您自己的替代枚举代码并创建一个性别类),但我没有找到任何东西将这种方法与使用布尔、符号、字符串、字符进行比较或对比,或者将其视为常见的约定。

我认为,在现代编程中,特别是在Ruby等语言中,正如你所说,使用像
0
1
这样的幻数被认为是一种不好的做法。然后,自然选择是为每个性别使用字符串、符号或特定类。对于封闭类,应避免使用字符串。当使用一个符号时,我认为标准的做法是使用一个完整的单词,而不是缩写,并且使用小写字母(如果超过一个单词,则使用下划线)。所以我认为
:男
:女
将是一个不错的选择。或者,您可以拥有
男性
女性
类,每个类都有一个唯一的对象,就像
FalseClass
TrueClass
。或者,您可以简单地定义两个
对象
实例
男性
女性
。由于性别之间没有自然的顺序,你需要定义你自己的

我个人使用符号
:m
/
:f
或整数
1
/
0
。对于整数,顺便说一下,你甚至不需要记住哪个是哪个。这很直观!:)符号可能是最好的选择。虽然理性的人不太可能在这一点上大发雷霆,但要记住:(1)性别和性别被一些人认为是不同的概念(基本上是生物属性与社会角色和/或身份),以及(2)有些人(性别/性/无论你怎么称呼它)不符合男性/女性二元结构,并且(3)其性别和性别(由1)不匹配。@delnan,是的,你提出了我同意并意识到的重要观点。我把性别和性别放在标题中只是为了关键词的目的,不是因为我相信它们是一样的(尽管有些搜索者可能会这样!)。如果我是在收集数据,我向你保证,这将以更加准确和敏感的方式进行,如果有,但不幸的是,我只是接收者,我目前使用的数据假设性别二元,即性别=生物性别,每个人都有性别,并使用这些假设来识别数据输入中的错误。唉,我倾向于使用符号,而不是类或魔法数字。不过,这基本上只是意见,所以YMMV。