2013-02-22 1 views
2

루비 협약은 개체의 필드로 작업 할 때 성별 또는 성별을 나타내는 것입니다. 이진 성 가정이 있습니다 (동의하지는 않지만 데이터는 일반적으로이 방법으로 수집됩니다).성별 또는 성별을 나타내는 루비 협약

상황에 따라 다른 유형을 사용 하시겠습니까? 이 정보를 사용자에게 표시 할 때는 의미있는 방식 (Male, male, M, 무엇이든 0 또는 1이 아닌)으로 표시하고자하며이를 사용하여 성별로 개체를 정렬 할 수 있습니다. 내 생각은 :Male:Female 등의 기호를 사용하는 것입니다. 그러나 저는 Ruby에서 더 많은 경험을 가진 사람들의 생각을 듣고 싶습니다.

나는 (자신의 대체 열거 형 코드를 작성하고 Gender 클래스를 작성하는) 몇 가지 제안을 발견했지만,이 방법을 부울, 기호, 문자열, 문자를 사용하는 것과 비교하거나 대조하는 것을 찾지 못했습니다. 공통된 관례.

+1

필자는 개인적으로': m' /': f' 또는'1' /'0' 정수를 사용합니다. 정수를 사용하면 어떤 것을 기억할 필요조차 없습니다. 직관적입니다! :) –

+1

기호가 아마도 최선의 선택 일 것입니다. –

+5

합리적인 사람들이이 점에 대해 심각한 위반을하는 것은 아니지만, (1) 성별과 성별은 일부 (기본적으로 생물학적 속성 대 사회적 역할 및/또는 정체성)와 (2) 거기에 따라 다른 개념으로 간주된다는 점을 기억하는 것이 유용합니다. (성/성/당신이 무엇이든간에) 남성/여성 바이너리에 맞지 않는 사람과 (3) 성별 및 성별이 (1) 일치하지 않는 사람들입니다. – delnan

답변

0

저는 현대 프로그래밍에서 특히 Ruby와 같은 언어에서 0과 같은 마법 번호를 사용하면 1이 좋다고 생각합니다. 그런 다음 자연스러운 선택은 각 성별/성별에 따라 문자열, 기호 또는 특정 클래스를 사용하는 것입니다. 닫힌 클래스의 경우 문자열 사용을 피해야합니다. 기호를 사용할 때는 약어가 아닌 전체 단어를 사용하는 것이 표준이라고 생각합니다. 소문자에서는 단어가 하나 이상이면 밑줄을 사용합니다. 그래서 나는 :male:female이 좋은 선택 일 것이라고 생각한다. 또는 MaleFemale 클래스를 가질 수 있으며 각 클래스에는 FalseClassTrueClass과 같은 고유 한 개체가 있습니다. 또는 두 개의 Object 인스턴스 MaleFemale을 간단하게 정의 할 수 있습니다. 성별/성별에 자연 순서가 없기 때문에 자신 만의 <=>을 정의해야합니다.

+2

'<=>'을 정의하고 고소하십시오! – Reactormonk