Go 구조체에서 문자열과 정수 값 결합: 인터페이스 사용
Go에서는 데이터 구조가 필요한 시나리오가 발생할 수 있습니다. 문자열과 정수 값을 모두 저장합니다. 다음 구조체 정의를 고려하세요.
type testCase struct { input string isValid bool }
그러나 사용 사례에 따라 입력을 문자열이나 정수로 처리하는 것이 편리할 수도 있습니다. 이를 달성하려면 아래와 같이 인터페이스를 사용할 수 있습니다.
type Input interface { String() string }
문자열 및 정수 유형에 대한 인터페이스 구현
두 유형 모두에 대해 입력 인터페이스를 구현할 수 있습니다. 문자열 및 정수:
type StringInput string func (s StringInput) String() string { return string(s) } type IntegerInput int func (i IntegerInput) String() string { return strconv.Itoa(int(i)) }
구조체에서 입력 인터페이스 사용
이제 입력 인터페이스를 사용하도록 testCase 구조체를 수정할 수 있습니다.
type testCase struct { input Input isValid bool }
샘플 코드
다음은 이 인터페이스를 사용하여 문자열과 정수 값을 모두 저장하고 검색할 수 있는 방법에 대한 예입니다.
package main import ( "fmt" "strconv" ) type Input interface { String() string } type StringInput string func (s StringInput) String() string { return string(s) } type IntegerInput int func (i IntegerInput) String() string { return strconv.Itoa(int(i)) } type testCase struct { input Input isValid bool } func main() { // Create a test case with a string input testString := testCase{ input: StringInput("Hello, world!"), isValid: true, } // Print the input as a string fmt.Println(testString.input.String()) // Output: Hello, world! // Create a test case with an integer input testInt := testCase{ input: IntegerInput(123), isValid: true, } // Print the input as a string fmt.Println(testInt.input.String()) // Output: 123 }
입력 인터페이스를 사용하면 Go 구조체에서 문자열과 정수 값을 모두 원활하게 처리할 수 있어 유연성과 코드 재사용성이 향상됩니다.
위 내용은 인터페이스를 사용하여 Go 구조체에 문자열과 정수를 모두 저장하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!