Go에서 인터페이스를 콘크리트 유형으로 캐스트
Jay Singh
2022년8월23일
Go 언어의 인터페이스는 다른 언어의 인터페이스와 다릅니다. 인터페이스는 하나 이상의 메서드 서명 모음을 표현하는 데 사용되는 Go 언어의 유형입니다.
추상적입니다. 따라서 인스턴스를 구성할 수 없습니다. 그러나 인터페이스의 필수 메소드를 포함하는 구체적인 유형 값을 할당할 수 있는 인터페이스 유형 변수를 설정할 수 있습니다.
또는 다르게 말하면 인터페이스는 메소드 세트이자 사용자 정의 유형입니다.
이 자습서는 Go에서 인터페이스를 구체적인 유형으로 캐스팅하는 방법을 보여줍니다.
Go에서 인터페이스를 콘크리트 유형으로 캐스트
.(type)
연산자는 인터페이스 유형 객체를 구체적인 유형으로 변환하는 데 유용합니다. 유형 구현 가능한 메서드 서명의 컬렉션은 인터페이스를 구성합니다.
이 예에서는 Person
인터페이스 유형 개체를 만듭니다. Jay Singh
를 인터페이스 객체에 Person
으로 추가하고, 객체를 인터페이스 유형에서 구체적인 유형으로 변환하는 메소드를 작성하고, 인터페이스 객체 유형의 데이터에 액세스하고, 결과를 표시합니다.
package main
import "fmt"
type Person struct {
firstName string
lastName string
}
func main() {
person := Person{
firstName: "Jay",
lastName: "Singh",
}
printIfPerson(person)
}
func printIfPerson(object interface{}) {
person, ok := object.(Person)
if ok {
fmt.Printf("Hello %s!\n", person.firstName)
}
}
출력:
Hello Jay!