• go 1.16环境使用go mod同目录下导包 Marathon


    1.同目录下仅main.go所在目录下文件导包

    测试的目录文件结构如下:

    +--- demo
    |   +--- demo1
    |   |   +--- demo1.go
    |   |   +--- demo2
    |   |   |   +--- demo2.go
    |   +--- go.mod
    |   +--- main.go
    

    为了测试需要,在demo2.go/demo1.go/main.go分别简单写了如下代码:

    // main.go
    package main
    
    import (
    	"demo/demo1"
    	"fmt"
    )
    
    func main()  {
    	fmt.Println("demo-main()")
    	demo1.New()
    }
    
    // demo1.go
    package demo1
    
    import (
    	"demo/demo1/demo2" // 
    	"fmt"
    )
    
    func New()  {
    	fmt.Println("demo-demo1-New()")
    	demo2.Demo2()
    }
    
    // demo2.go
    package demo2
    
    import "fmt"
    
    func Demo2()  {
    	fmt.Println("demo-demo1-demo2()")
    }
    

    由于导入本地包,可以不用设置main.go同目录下的go.mod,

    // go.mod
    module demo
    
    go 1.16
    

    运行main.go,调用成功

    go run main.go
    /*
    demo-main()
    demo-demo1-New()
    demo-demo1-demo2()
    */
    

    2.同目录下导入目录-go.mod

    由于现在普遍使用go.mod管理包依赖,如果在项目目录下有其他包,建议在go.mod添加一下replace

    // go.mod
    ...
    replace (
      project/subDir => ../project/subDir
    )
    
    // 如果有必要,将以下加入
    require (
      project v0.0.0
    )
    ...
    

    一般go mod tidy可解决导入报红的问题。

    3.同项目目录下到包-包中带go.mod

    填坑中...

    参考:
    1.go mod 如何导入本地的包

  • 相关阅读:
    〖Linux〗-- 复制、用户和组操作、权限更改
    〖Linux〗-- 文本结构和基本命令
    〖Demo〗-- ATM
    〖Python〗-- 脚本目录规范
    二、配置文件
    一、SpringBoot入门
    File--字节流--字符流
    File--字节流--字符流
    SpringBoot快速搭建流程
    SpringBoot快速搭建流程
  • 原文地址:https://www.cnblogs.com/davis12/p/16242598.html
Copyright © 2020-2023  润新知