无法在 golang 中包含多文件

FR *_*TAR -2 struct compilation go

我知道以前有人问过这个问题,我已经尝试了所有可能的答案,但仍然没有任何帮助。

但是,再次刷新问题并详细说明我的问题。我实际上是在尝试将一个简单的文件包含到 main.go 文件中。我的文件夹结构和其余信息如下:

\src\
   Multi-file\
     lib\Car.go
   main.go
Run Code Online (Sandbox Code Playgroud)

货物

 package main

    type Car struct {
        numberOfDoors int
        cylinders int
    }
Run Code Online (Sandbox Code Playgroud)

main.go

package main 

import (
    "fmt"
)

func main() {
    c := Car{4,6}
    fmt.Println(c)
}
Run Code Online (Sandbox Code Playgroud)

当我编译 main.go 时,出现以下错误

# command-line-arguments
.\main.go:8: undefined: Car
Run Code Online (Sandbox Code Playgroud)

这是我的go env详细信息:

set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\xampp\htdocs\golang
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GO15VENDOREXPERIMENT=
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
Run Code Online (Sandbox Code Playgroud)

仅供参考:我尝试将作为包也包括在内,这甚至没有帮助我。

任何帮助将不胜感激。

pet*_*rSO 5

按照以下说明为程序和库设置工作区:如何编写 Go 代码

对于您的示例,两个文件main包,

src/car
??? car.go
??? main.go

$ cd src/car
$ go run main.go car.go
{4 6}
$ go build car && ./car
{4 6}
$ go install car && car
{4 6}
$ 
Run Code Online (Sandbox Code Playgroud)

main.go

package main

import (
    "fmt"
)

func main() {
    c := Car{4, 6}
    fmt.Println(c)
}
Run Code Online (Sandbox Code Playgroud)

car.go

package main

type Car struct {
    numberOfDoors int
    cylinders     int
}
Run Code Online (Sandbox Code Playgroud)