>  기사  >  백엔드 개발  >  "type abc 인터페이스{}"에 값을 삽입하세요.

"type abc 인터페이스{}"에 값을 삽입하세요.

WBOY
WBOY앞으로
2024-02-10 20:39:17726검색

将值插入“type abc interface{}”

PHP 편집기 Xiaoxin이 "type abc 인터페이스{}"에 값을 삽입하는 방법을 소개하려고 왔습니다. PHP에서는 사양 세트를 정의하기 위해 인터페이스를 사용하는 경우가 많습니다. 때때로 인터페이스에서 기본값을 정의해야 하는 상황이 발생합니다. 이때 특성(feature)을 사용하여 이 기능을 구현할 수 있습니다. 특성은 여러 클래스에서 공유할 수 있는 코드 조각입니다. 특성을 사용하면 인터페이스에서 기본값을 정의하고 클래스에서 사용할 수 있습니다. 이 방법은 간단하고 이해하기 쉽습니다. 구체적인 구현 단계를 살펴보겠습니다!

질문 내용

type abc [][] 接口{}

에 값을 삽입하려고 합니다.

이것을 시도했습니다:

insert := &abc{{0, {"abc", "def"}}}

이렇게 하면 오류가 발생합니다: 无效的复合文字类型:接口{}

저도 이것을 시도했습니다:

insert, _ := json.Marshal([][]interface{}{{0, {"abc", "def"}}})

하지만 이것도 오류가 발생합니다 Invalid Composite Literal Type: interface{}

다음과 같이 출력되기를 원합니다.

[ [ 0, [ "abc", "def" ] ]

제가 어디에서 잘못되고 있는지, 어떻게 해결하는지 알려주실 수 있나요?

해결 방법

abc 的类型允许任何类型,但是需要定义您放入其中的内容的类型。您没有定义 {"abc", "def"} 유형 및 인터페이스 리터럴은 인스턴스화할 수 없습니다(인터페이스는 컴파일러에 필드에 대해 아무 것도 알려주지 않습니다). 익명 구조를 가질 수 있지만 여전히 정의해야 합니다.

예를 들어 지금 가지고 있는 내용을 살펴보겠습니다.

으아악

항목이 없는 외부 배열을 만듭니다.

으아악

3개의 빈 내부 배열을 사용하여 외부 배열을 만듭니다.

으아악

2개의 값을 갖는 내부 배열이 있는 외부 배열: 0"abc".

으아악

2개의 값을 갖는 내부 배열이 있는 외부 배열: 0 和......什么?这是一个对象字面量,但没有显式类型,也没有语法上正确的隐式类型(隐式地期望 interface{} 직접 인스턴스화할 수 없음) 이는 오류입니다.

으아악

이제 문제의 구조에 입력되었습니다.

으아악

익명 구조 역시 추악하지만 효과적인 접근 방식입니다.

으아악

원하시는 바에 가장 가까운 것 같습니다.

규칙은 interface{} 可以保存任何定义的东西。它不等同于 c# 的 dynamic개체입니다.

위 내용은 "type abc 인터페이스{}"에 값을 삽입하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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