>  기사  >  백엔드 개발  >  인스턴스화 인터페이스

인스턴스화 인터페이스

WBOY
WBOY앞으로
2024-02-08 21:08:41359검색

인스턴스화 인터페이스

PHP 편집기 Youzi가 인스턴스화 인터페이스가 무엇인지 소개하기 위해 왔습니다. 객체 지향 프로그래밍에서 인터페이스는 클래스가 구현해야 하는 메서드를 정의하는 규칙입니다. 인터페이스를 인스턴스화한다는 것은 인터페이스에 정의된 메서드를 구현하기 위해 클래스의 개체를 만드는 것을 의미합니다. 인터페이스를 인스턴스화함으로써 다형성 기능을 활용하여 서로 다른 클래스가 동일한 인터페이스를 구현하고 실제 상황에 따라 해당 메서드를 다시 작성할 수 있습니다. 인스턴스화 인터페이스를 사용하면 코드가 더욱 유연하고 확장 가능해지며 코드의 재사용성과 유지 관리성이 향상됩니다. 인스턴스화된 인터페이스의 사용법과 주의사항을 자세히 살펴보겠습니다.

질문 내용


저는 처음입니다. 내가 이해하지 못하는 한 가지는 인터페이스를 개별적으로 인스턴스화하려고 할 때 컴파일 오류가 발생하지만 인터페이스의 배열 형식을 사용할 때는 컴파일 오류가 발생하지 않는 이유입니다.

으아악

이 복합 리터럴은 주어진 값으로 새로운 구조 인스턴스를 할당합니다.


해결 방법


중괄호 {} 用于切片、结构、数组和映射的文字值。它们不用于接口值。如果您想要接口类型的文字值,则必须使用 () 구문을 사용하여 "유형 변환"을 호출합니다.

예:

으아악

x 的类型为 myinterface.

코드를 수정하려면:

으아악

go에서는 인터페이스 값에 대한 직접 할당을 허용하고 변환이 암시적이므로 유형 변환을 완전히 제거할 수도 있습니다. 보다 구체적으로 Assignability 규칙은 다음과 같습니다(명확성을 위해 편집됨).

t가 인터페이스 유형이고 x가 t를 구현하는 경우 v 유형의 값 x를 t 유형의 변수에 할당할 수 있습니다.

따라서 다음 코드도 작동합니다:

으아악

슬라이스, 구조체, 맵과 같은 복합 리터럴에서 주어진 값은 마치 변수인 것처럼 해당 인덱스, 필드 또는 키에 할당 처리되므로 할당 가능성 규칙이 적용됩니다.

위 내용은 인스턴스화 인터페이스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제