40 lines
774 B
Go
40 lines
774 B
Go
package domain
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// 字串轉數字的對應表
|
|
var genderStringToCode = map[string]int64{
|
|
"secret": 0,
|
|
"male": 1,
|
|
"female": 2,
|
|
}
|
|
|
|
// 數字轉字串的對應表
|
|
var genderCodeToString = map[int64]string{
|
|
0: "secret",
|
|
1: "male",
|
|
2: "female",
|
|
}
|
|
|
|
// StringToGenderCode 將 "male"/"female"/"secret" 轉為對應數字
|
|
func StringToGenderCode(gender string) (int64, error) {
|
|
code, ok := genderStringToCode[gender]
|
|
if !ok {
|
|
return -1, fmt.Errorf("invalid gender string")
|
|
}
|
|
|
|
return code, nil
|
|
}
|
|
|
|
// GenderCodeToString 將 0/1/2 轉為對應字串 "male"/"female"/"secret"
|
|
func GenderCodeToString(code int64) (string, error) {
|
|
gender, ok := genderCodeToString[code]
|
|
if !ok {
|
|
return "", fmt.Errorf("invalid gender code")
|
|
}
|
|
|
|
return gender, nil
|
|
}
|