Golang에서 사용자 정의 패키지를 사용하는 방법은 무엇입니까?
Go에서 사용자 정의 패키지를 만들고 사용하려고합니다. 아마도 매우 분명한 것이지만 이것에 대한 많은 정보를 찾을 수 없습니다. 기본적 으로이 두 파일은 동일한 폴더에 있습니다.
mylib.go
package mylib
type SomeType struct {
}
main.go
package main
import (
"mylib"
)
func main() {
}
시도 go run main.go
하면이 오류가 발생합니다.
main.go:4:2: import "mylib": cannot find package
go build mylib.go
먼저 실행하려고했지만 아무것도하지 않는 것 같습니다 (파일 생성, 오류 메시지 없음). 내가 어떻게 이것을 할 수 있을지 아십니까?
먼저 "Go 코드 작성 방법" 문서 를 읽고 이해하십시오 .
실제 답변은 "사용자 정의 패키지"의 특성에 따라 다릅니다.
일반적인 용도로 사용하려면 소위 "Github 코드 레이아웃"을 사용하십시오 . 기본적으로 라이브러리를 별도의 go get
테이블 프로젝트로 만듭니다.
라이브러리가 내부 용인 경우 다음과 같이 갈 수 있습니다.
- 라이브러리 파일이있는 디렉토리를 프로젝트의 디렉토리 아래에 두십시오.
- 나머지 프로젝트에서 프로젝트가 포함 된 작업 공간의 루트에 상대적인 경로를 사용하여 라이브러리를 참조하십시오.
시연하려면 :
src/
myproject/
mylib/
mylib.go
...
main.go
이제 최상위 레벨 main.go
에서 할 수 import "myproject/mylib"
있으며 정상적으로 작동합니다.
이런 종류의 폴더 구조의 경우 :
main.go
mylib/
mylib.go
가장 간단한 방법은 이것을 사용하는 것입니다.
import (
"./mylib"
)
GitHub에서 호스팅되는 프로젝트의 경우 사람들이 일반적으로 수행하는 작업은 다음과 같습니다.
github.com/
laike9m/
myproject/
mylib/
mylib.go
...
main.go
mylib.go
package mylib
...
main.go
import "github.com/laike9m/myproject/mylib"
...
I am an experienced programmer, but, quite new into Go world ! And I confess I've faced few difficulties to understand Go... I faced this same problem when trying to organize my go files in sub-folders. The way I did it :
GO_Directory ( the one assigned to $GOPATH )
GO_Directory //the one assigned to $GOPATH
__MyProject
_____ main.go
_____ Entites
_____ Fiboo // in my case, fiboo is a database name
_________ Client.go // in my case, Client is a table name
On File MyProject\Entities\Fiboo\Client.go
package Fiboo
type Client struct{
ID int
name string
}
on file MyProject\main.go
package main
import(
Fiboo "./Entity/Fiboo"
)
var TableClient Fiboo.Client
func main(){
TableClient.ID = 1
TableClient.name = 'Hugo'
// do your things here
}
( I am running Go 1.9 on Ubuntu 16.04 )
And remember guys, I am newbie on Go. If what I am doing is bad practice, let me know !
another solution:
add src/myproject
to $GOPATH.
Then import "mylib"
will compile.
참고URL : https://stackoverflow.com/questions/15049903/how-to-use-custom-packages-in-golang
'IT story' 카테고리의 다른 글
FirebaseInstanceIdService는 더 이상 사용되지 않습니다 (0) | 2020.05.29 |
---|---|
변하지 않는 문화 란 무엇입니까? (0) | 2020.05.29 |
공급 업체 스크립트를 개별적으로 번들로 묶고 Webpack과 함께 필요에 따라 필요한 방법은 무엇입니까? (0) | 2020.05.29 |
디렉토리의 모든 파일 및 폴더 권한을 644/755로 변경하십시오. (0) | 2020.05.27 |
HTML 텍스트를 선택 불가능하게 만드는 방법 (0) | 2020.05.27 |