使用go mod导入本地自定义包问题

 更新时间:2024年07月26日 14:35:13   作者:CoderLonely  
这篇文章主要介绍了使用go mod导入本地自定义包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

go mod导入本地自定义包

1.要使用gomod首先要开启gomod,而不使用旧方法导入包

go env -w GO111MODULE=on 

2.创建项目

mkdir myproject
go mod init myproject

假设项目目录为:

其中main包和utils包同级

3.在main包中就可以使用utils包了

package main

import (
"fmt"
//导入自定义包时直接加上项目名,因为项目在init时已经添加到go环境中了
"myproject/utils"
)

func main(){
fmt.Println("hello world")
//调用utils中的Test函数
utils.Test()
}

golang如何引入自定义包

比如安装go jdk在D盘D:\golang\bin

建议将项目放在D:\golang\src目录下,这时候直接可以读取GOPATH为D:\golang\src,此时引入自定义包路径即为自己项目名称+具体包路径

1.第一种比较笨的方式

比如可以在D:\golang\src下建一个项目my-project

my-project目录层级如下:

  • main/main.go
  • utils/utils.go

main.go调用自定义包utils包的方法GetSum

package main

import (
	"fmt"
	"my-project/utils"
)

func main() {
	var result int = utils.GetSum(100, 200)
	fmt.Println(result)
}

utils.go包下可以自定义包名和函数GetSum

package utils

func GetSum(a int, b int) int {
	return a + b
}

2.第二种使用go.mod的方式,项目比较推荐

早在终端输入命令:go mod init 后面一般跟git项目路径即可

执行完go mod init github.com/golang/go-web命令生成 go.mod文件大致如下,后面这只是虚拟个人git项目地址,根据个人项目情况而定:

module github.com/golang/go-web
go 1.20

导入包测试

新建一个testModule/test.go

package testModule

func CountSum(a int, b int) int {
	return a + b
}

在main.go入口文件引入包测试

package main

import (
	"fmt"
	"github.com/golang/go-web/testModule"
)
func main () {
		res := testModule.CountSum(23, 88)
		fmt.Println("输入计算结果:", res)
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Go 1.22对net/http包的路由增强功能详解

    Go 1.22对net/http包的路由增强功能详解

    Go 1.22 版本对 net/http 包的路由功能进行了增强,引入了方法匹配(method matching)和通配符(wildcards)两项新功能,本文将给大家详细的介绍一下Go 1.22对net/http包的路由增强功能,需要的朋友可以参考下
    2024-02-02
  • 一文带你搞懂golang中内存分配逃逸分析

    一文带你搞懂golang中内存分配逃逸分析

    这篇文章主要带大家一起学习一下golang中内存分配逃逸分析,文中的示例代码讲解详细,对我们深入了解golang有一定的帮助,感兴趣的小伙伴可以了解下
    2023-08-08
  • 深度剖析Golang中的数组,字符串和切片

    深度剖析Golang中的数组,字符串和切片

    Golang 是一种以简洁性、并发性和性能而著称的编程语言。其重要特性之一是能够处理数组、字符串和切片等数据类型。本篇文章将深入讨论这些数据类型,并探讨如何在代码中使用它们
    2023-04-04
  • Golang 经典校验库 validator 用法解析

    Golang 经典校验库 validator 用法解析

    这篇文章主要为大家介绍了Golang 经典校验库 validator 用法解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • golang之数据验证validator的实现

    golang之数据验证validator的实现

    这篇文章主要介绍了golang之数据验证validator的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 谈论Go 什么时候会触发 GC问题

    谈论Go 什么时候会触发 GC问题

    Go 语言作为一门新语言,在早期经常遭到唾弃的就是在垃圾回收(下称:GC)机制中 STW(Stop-The-World)的时间过长。下面文章就对此话题展开,感兴趣的小伙伴可以参考下面文章的内容
    2021-09-09
  • 一文带你深入了解Golang中的参数传递机制

    一文带你深入了解Golang中的参数传递机制

    值传递和引用传递是编程语言中两种主要的参数传递方式,决定了函数调用过程中实参如何影响形参以及函数内部对形参的修改是否会影响到原始实参,下面就跟随小编一起深入了解下golang中参数传递机制吧
    2024-01-01
  • Golang pipe在不同场景下远程交互

    Golang pipe在不同场景下远程交互

    这篇文章主要介绍了Golang pipe在不同场景下远程交互,pipe实现从一个进程重定向至另一个进程,它是双向数据通道,用于实现进行间通信
    2023-03-03
  • 详解Go语言中配置文件使用与日志配置

    详解Go语言中配置文件使用与日志配置

    这篇文章主要为大家详细讲解一下Go语言中调整项目目录结构、增加配置文件使用和增加日志配置的方法,文中示例代码讲解详细,需要的可以参考一下
    2022-06-06
  • Go Plugins插件的实现方式

    Go Plugins插件的实现方式

    目前 Plugins 仅在 Linux、FreeBSD 和 macOS 上受支持,且只支持 golang 调用,今天通过本文给大家介绍Go Plugins插件的实现方式,感兴趣的朋友一起看看吧
    2021-08-08

最新评论