代码之家  ›  专栏  ›  技术社区  ›  Ali Khakpouri

从本地子目录导入包

  •  -2
  • Ali Khakpouri  · 技术社区  · 6 年前

    我是新来的,所以我希望这不会被认为是愚蠢的!

    我当前的文件夹结构与此类似 enter image description here

    models 文件夹,我有 person.go .

    package models
    
    //Person struct
    type Person struct {
        Name   string
        Age    int
        Gender string
    }
    

    main.go ,我喜欢进口 模型 ,以便我可以使用 person 结构。

        package main
    
    import "fmt"
    import "models"
    
    func main() {
        person = Person{Name: "Ali", Age: 34, Gender: "Male"}    
        fmt.Println("person is", person)
    }
    

    当我尝试执行时 go build ,我得到以下异常:

    main.go:4:8:在以下任何位置都找不到包“models”: C:\go\src\models(来自$goroot) C:\users\ali\go\src\models(来自$gopath)

    因为我当前的工作文件夹不是我的 $GOROOT 也不是 $GOPATH . 事实上,我不想再加上 模型 文件夹到这些文件夹中的任何一个。

    这是可能的吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Dariush Abbasi    6 年前

    使用 ./models 而不是 models .

    但更好的解决方案是使用go项目目录结构。

    official docs

    推荐文章