> 백엔드 개발 > Golang > Go에서 한 패키지에 정의된 유형을 다른 패키지에 사용하는 방법은 무엇입니까?

Go에서 한 패키지에 정의된 유형을 다른 패키지에 사용하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-22 05:09:21
원래의
976명이 탐색했습니다.

How to Use a Type Defined in One Package in Another Package in Go?

Go에서 패키지 및 유형 가져오기

Go에서 패키지는 관련 코드와 데이터를 캡슐화합니다. 한 패키지의 기능을 다른 패키지에서 재사용하려면 첫 번째 패키지를 후자로 가져와야 합니다.

문제: 한 패키지에서 다른 패키지로 유형 가져오기

다음 프로젝트 구조를 고려하세요.

src
|-->config
       |--> config.go
|-->otherPackage
       |--> otherFile.go
|-->main.go
로그인 후 복사

config.go 파일에는 Config에 대한 유형 정의가 포함되어 있습니다.

package config

type Config struct {
    // ...
}
로그인 후 복사

원하는 작업 otherFile.go 파일에서 구성 유형을 사용하세요.

package otherPackage

func SomeFunction(target float64, entries [2]float64, config config.Config) {
    // ...
}
로그인 후 복사

가져오기 오류: "가져왔지만 사용되지 않음" 및 "정의되지 않음: 구성"

구성 패키지를 가져오려고 하면 다음 오류가 발생합니다:

  • "가져왔지만 가져오지 않았습니다. Used"
  • "undefine: Config"

첫 번째 오류는 구성 패키지를 가져왔지만 코드 어디에서도 사용하고 있지 않음을 나타냅니다. 두 번째 오류는 구성 유형이 현재 범위에서 인식되지 않음을 나타냅니다.

해결책: 가져온 유형에 정규화된 이름 사용

이 문제를 해결하려면 전체 패키지를 사용하여 패키지를 가져와야 합니다. 상대 경로 대신 경로. 또한 코드에서 참조할 때 패키지 이름으로 Config 유형을 한정해야 합니다.

package otherPackage

import (
    "fmt"
    "math"
    "your-project/src/config"
)

func SomeFunction(target float64, entries [2]float64, config config.Config) {
    // ...
}
로그인 후 복사

전체 경로와 함께 패키지를 가져오면 Config 유형을 찾을 수 있는 위치를 명시적으로 지정할 수 있습니다. 패키지 이름으로 유형을 한정하면 컴파일러가 참조하는 Config 유형을 알 수 있습니다.

참고: 가져오려는 패키지 이름이 변수와 동일하거나 현재 범위에서는 충돌을 피하기 위해 변수 또는 유형의 이름을 바꿔야 합니다.

위 내용은 Go에서 한 패키지에 정의된 유형을 다른 패키지에 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿