[go] Go 언어의 인터페이스
Go 언어는 인터페이스(interface)라는 강력한 기능을 제공하여 유연하고 모듈화된 코드를 작성할 수 있게 합니다. 인터페이스는 메소드 집합을 나타내며, Go에서는 어떤 객체가 특정 인터페이스를 따르는지 판별하기 위해 명시적인 선언이 필요하지 않습니다.
인터페이스의 정의
type Shape interface {
Area() float64
Perimeter() float64
}
위 코드에서 Shape
은 인터페이스를 나타내며, Area
와 Perimeter
메소드로 구성되어 있습니다.
인터페이스 구현
type Circle struct {
radius float64
}
func (c Circle) Area() float64 {
return math.Pi * c.radius * c.radius
}
func (c Circle) Perimeter() float64 {
return 2 * math.Pi * c.radius
}
Circle
구조체가 Shape
인터페이스를 구현하고 있음을 볼 수 있습니다.
인터페이스 사용
func printShapeInfo(s Shape) {
fmt.Println("Area:", s.Area())
fmt.Println("Perimeter:", s.Perimeter())
}
위의 printShapeInfo
함수는 Shape
인터페이스를 따르는 객체를 인자로 받아 해당 객체의 정보를 출력합니다.
Go 언어의 인터페이스는 코드의 재사용성과 유지보수를 용이하게 만들어 주며, 객체 지향적인 설계 및 프로그래밍을 할 때 매우 유용하게 활용될 수 있습니다.
Go 언어 공식 문서에서 더 많은 정보를 확인할 수 있습니다.