golang에서 여러 유형을 하나의 유형으로 정의하는 방법

WBOY
풀어 주다: 2024-02-09 10:03:19
앞으로
600명이 탐색했습니다.

golang에서 여러 유형을 하나의 유형으로 정의하는 방법

golang에서는 데이터를 보다 유연하게 처리하기 위해 여러 유형을 하나의 유형으로 정의해야 하는 경우가 있습니다. 이 문제에 대해 PHP 편집자 Xinyi는 모든 사람에게 솔루션을 제공합니다. 인터페이스 유형을 사용하면 여러 가지 유형을 하나의 유형으로 정의할 수 있습니다. 인터페이스 유형은 특정 구현을 지정하지 않고 메소드 세트를 정의할 수 있습니다. 이러한 방식으로 우리는 여러 유형에 대해 이 인터페이스를 구현한 다음 통합된 작업 및 처리에 이 인터페이스 유형을 사용할 수 있습니다. 이 접근 방식은 코드 구조를 단순화할 뿐만 아니라 코드의 가독성과 유지 관리 가능성도 향상시킵니다. 다음으로 구체적인 구현 단계를 살펴보겠습니다.

질문 내용

func GetFailedReasonAndErr (xxx) (string, error){
...
}

func AnyFailed (args ...(string, error)) {
   for _, arg := range args {
      if arg.error != nil {
         return arg
       }
   }
}

func main () {
    reason, err := AnyFailed(GetFailedReasonAndErr(yyy), GetFailedReasonAndErr(zzz))
    println(reason, err)
}
로그인 후 복사

위 코드는 "args ...(string, error)"가 허용되지 않기 때문에 컴파일에 실패합니다. (String, Error)를 유형으로 정의할 수 있나요? 아니면 더 좋은 방법이 있나요? (구조체를 사용할 수 있나요?) 좋다 : Type Reasonanderror(String, Error)

해결 방법

(String, Error)를 유형으로 정의할 수 있나요?

아니요, 해당 구문은 사용되지 않습니다. go에는 튜플이 없습니다.

(구조를 사용할 수 있나요?) 예: Reasonanderror(문자열, 오류)

를 입력하세요.

예, 구조체 유형을 선언하고 사용하세요. 구조 유형을 선언하는 구문은 다음과 같습니다.

으아악

그런 다음 사용하려면 다음을 수행하세요.

으아악

위 내용은 golang에서 여러 유형을 하나의 유형으로 정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!