Go에서는 enum의 이름을 얻으려면 일반적으로 다음을 정의해야 합니다. func(TheEnum) String() 문자열 메서드. 그러나 이는 특히 열거형이 많은 경우 지루할 수 있습니다.
한 가지 대안은 표준 도구 패키지에 있는 Go의 스트링거 도구를 사용하는 것입니다. 열거형 정의와 동일한 디렉터리에서 다음 명령을 실행하면 됩니다.
stringer -type=Pill
이렇게 하면 func(Pill) String() 문자열 메서드 정의가 포함된 파일이 생성됩니다.
package painkiller type Pill int const ( Placebo Pill = iota Aspirin Ibuprofen Paracetamol Acetaminophen = Paracetamol )
문자열 명령 실행:
stringer -type=Pill
다음을 생성합니다. file:
// Code generated by "stringer -type=Pill"; DO NOT EDIT. package painkiller import "strconv" func (p Pill) String() string { switch p { case Placebo: return "Placebo" case Aspirin: return "Aspirin" case Ibuprofen: return "Ibuprofen" case Paracetamol: return "Paracetamol" case Acetaminophen: return "Acetaminophen" } return "Pill(" + strconv.FormatInt(int64(p), 10) + ")" }
그런 다음 이 메소드를 사용하여 열거형의 이름을 가져올 수 있습니다. 예를 들어:
fmt.Println(Pill(3).String()) // Paracetamol
스트링거 도구는 Go의 go generate 명령과 함께 사용할 수 있습니다. 1.4 각 열거형에 대해 func(TheEnum) String() 문자열 메서드를 자동으로 생성합니다.
위 내용은 `String()` 메서드를 수동으로 정의하지 않고 Go Enum의 이름을 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!