美文网首页
Go Mod模式下引入当前的项目模块

Go Mod模式下引入当前的项目模块

作者: 霡霂976447044 | 来源:发表于2020-04-15 22:54 被阅读0次

    只讨论go mod模式情况。

    cd /tmp;mkdir testgomod;cd testgomod
    go mod init testxxx
    

    创建一些文件... 最后目录如下

    .
    ├── go.mod
    ├── main.go
    └── packagea
        └── hello.go
    
    1 directory, 3 files
    

    go.mod

    module testxxx
    
    go 1.14
    
    

    hello.go

    package hhh
    
    var Name string = "张三"
    
    

    main.go

    package main
    
    import "fmt"
    import "testxxx/packagea"  // 正确
    // import "packagea" package packagea is not in GOROOT (/usr/lib/go/src/packagea)
    
    func main() {
        fmt.Println("hello world!")
        fmt.Println(hhh.Name)
    }
    
    

    我们得到信息:

    1. package名不一定和目录一致,不一致的时候,写实际的package名
    2. mod模式,导入相对模块,需要加上当前module名的前缀为开始。

    其它注意点:

    1. go run xxx.go: 如果xxx.go文件包名是main,那么你引入相同包名的其它文件(xxx2.go)的变量,那么会无法找到该变量。使用go run .或者go run xxx.go xxx2.go。如果你的代码引入了是不同包名的,那么go run xxx.go还是正常的。

    2. 不允许子包导入main包

    相关文章

      网友评论

          本文标题:Go Mod模式下引入当前的项目模块

          本文链接:https://www.haomeiwen.com/subject/axekvhtx.html