다른 파일에서 함수를 호출하는 기본 go 프로그램을 작성하려고하지만 동일한 패키지의 일부입니다. 그러나 다음을 반환합니다.
undefined: NewEmployee
소스 코드는 다음과 같습니다.
main.go
:
package main
func main() {
emp := NewEmployee()
}
employee.go
:
package main
type Employee struct {
name string
age int
}
func NewEmployee() *Employee {
p := &Employee{}
return p
}
func PrintEmployee (p *Employee) {
return "Hello world!"
}
답변
“Go 코드 작성 방법”을 읽으십시오 .
사용하지 마십시오 /src
당신에 GOPATH
. 패키지는에 있습니다 $GOPATH/src
.
위해 build
또는 install
당신은 패키지 디렉토리에 파일이 필요합니다.
의 경우 go run
모든 파일을 인수로 제공해야합니다.
go run main.go employee.go
그러나 거의 항상을 사용해야합니다 go install
(또는 비 주 패키지로 작업 할 때 혼란 go build
을 go build
유발하기 때문에 전자를 사용하는 것이 좋습니다 )
답변
GoLand (Go의 Intellij IDEA)에서 동일한 문제가 발생하여 해결책을 찾았습니다. 당신은을 변경할 필요가 Run kind
에서 File
로 Package
또는 Directory
. Run/Edit
구성으로 이동하면 드롭 다운에서이를 선택할 수 있습니다 .
예를 들면 : 패키지 ~/go/src/a_package
, 용도 Package path
의 a_package
과을 Directory
의 ~/go/src/a_package
와 Run kind
의 Package
또는 Directory
.
답변
를 사용하는 경우을 go run
수행하십시오 go run *.go
. 현재 작업 디렉토리에서 모든 go 파일을 자동으로 찾아 컴파일하고 주 기능을 실행합니다.
답변
다음 중 하나를 시도 할 수 있습니다.
방법 01 : 프로젝트 이름이MyProject
- 경로로 이동하여 입력
go build
하고 Enter 키를 누르십시오. - 프로젝트 이름 ( “MyProject”)으로 실행 파일을 생성합니다.
- 그런 다음 터미널 유형에서
./MyProject
Enter 키를 누릅니다
을 입력하여 두 단계를 동시에 수행 할 수 있습니다 go build && ./MyProject
. 모든 go
파일로 프로젝트를 올바르게 실행합니다 .
방법 02
그냥 입력 go run *.go
하고 Enter 키를 누르십시오. 이것은 모든 을 실행 합니다 go files
.
이것이 누군가에게 도움이되기를 바랍니다.
답변
다른 go 파일에서 함수를 호출하고 Goland를 사용하는 경우 실행 메뉴에서 ‘구성 편집’옵션을 찾아 실행 유형을 파일에서 디렉토리로 변경하십시오. 모든 오류를 지우고 다른 go 파일에서 함수를 호출 할 수 있습니다.
답변
나는 같은 문제에 부딪 쳤고 Go11
다른 사람들 이 같은 문제에 부딪 칠 경우를 돕기 위해 어떻게 해결했는지 공유하고 싶었습니다.
나는 Go 프로젝트를 외부 $GOPATH
에 가지고 있었 으므로이 GO111MODULE=on
옵션을 켜지 않고 켜야했습니다.이 문제가 발생합니다. 당신이 전체를 구축하거나 테스트하려고 package
하거나 directory
그것이 없으면 해결되지 않을지라도GO111MODULE=on
답변
go 코드 작성 방법을 따르지 않는 경우 go 모듈 을 사용해야 합니다.
go 모듈을 사용하면 $ GOPATH / src에 코드를 넣을 필요가 없습니다. 다른 곳에서도 살 수 있습니다.
코드를 / employee와 같은 다른 디렉토리로 옮길 수 있습니다. 직원 디렉토리 아래에서 go 모듈을 초기화하십시오.
go mod init example.com/employee