Go lang의 다형성: 인터페이스와 구성을 통해 달성
객체 지향 프로그래밍의 기본 개념인 다형성은 객체가 다르게 동작하도록 허용합니다. 수업이나 유형에 따라. Go에서는 전통적인 OO 언어와 달리 인터페이스와 합성을 통해 다형성을 구현합니다.
문제:
다음 코드와 같이 구조적 상속을 사용하여 Go에서 다형성을 구현하려는 시도 스니펫을 사용하면 오류가 발생합니다.
<code class="go">type Foo struct { ... } type Bar struct { Foo ... } func getFoo() Foo { return Bar{...} }</code>
해결책:
Go에서는 인터페이스와 구성을 통해 다형성이 달성됩니다. 인터페이스는 유형이 구현해야 하는 메소드 세트를 정의하여 인터페이스가 예상되는 모든 곳에서 유형을 다형성으로 사용할 수 있도록 합니다.
아래 코드는 Go에서 인터페이스와 구성을 사용하여 다형성을 달성할 수 있는 방법을 보여줍니다.
<code class="go">package main import "fmt" type Foo interface { printFoo() } type FooImpl struct { } type Bar struct { FooImpl } type Bar2 struct { FooImpl } func (f FooImpl) printFoo() { fmt.Println("Print Foo Impl") } func getFoo() Foo { return Bar{} } func main() { fmt.Println("Hello, playground") b := getFoo() b.printFoo() }</code>
이 코드 조각에서:
Go는 인터페이스와 구성을 활용하여 기존 상속 없이 다형성을 달성하는 유연하고 효율적인 접근 방식을 제공합니다.
위 내용은 전통적인 상속 없이 Go에서 다형성을 어떻게 달성할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!