Go 구조체에 문자열과 정수 값 모두 저장
Go에서는 문자열과 정수 값을 모두 Go 구조체에 직접 저장할 수 없습니다. 단일 구조체 필드. 이는 변수가 구체적이고 잘 정의된 유형을 가져야 하는 언어의 강력한 유형 시스템 때문입니다.
가능한 솔루션
이 제한 사항을 해결하려면 다음을 수행해야 합니다. 몇 가지 옵션:
Go 1.18 이상에서 인터페이스 구현
인터페이스를 사용하면 문자열 값과 int 값을 모두 보유할 수 있는 유형을 만들 수 있습니다. 예는 다음과 같습니다.
type Input interface { IsValid() bool Value() interface{} } type TestCaseBool struct { input bool isValid bool } func (tc TestCaseBool) IsValid() bool { return tc.isValid } func (tc TestCaseBool) Value() interface{} { return tc.input }
이제 TestCaseBool 구조체를 사용하여 부울 값이나 빈 인터페이스를 보유할 수 있습니다.
참고: 이 솔루션에는 Go 1.18이 필요합니다. 이상으로 일할 수 있습니다.
위 내용은 Go 구조체에 String 값과 Int 값을 모두 저장할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!