使用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的range如何使用详解

    GO的range如何使用详解

    本文主要介绍了GO的range如何使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • vscode中安装Go插件和配置Go环境详细步骤

    vscode中安装Go插件和配置Go环境详细步骤

    要在VSCode中配置Go语言插件,首先需要确保你的电脑已经安装了Go环境和最新版本的VSCode,这篇文章主要给大家介绍了关于vscode中安装Go插件和配置Go环境的相关资料,需要的朋友可以参考下
    2024-01-01
  • GO语言字符串处理Strings包的函数使用示例讲解

    GO语言字符串处理Strings包的函数使用示例讲解

    这篇文章主要为大家介绍了GO语言字符串处理Strings包的函数使用示例讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Go语言学习技巧之如何合理使用Pool

    Go语言学习技巧之如何合理使用Pool

    这篇文章主要给大家介绍了关于Go语言学习技巧之如何合理使用Pool的相关资料,Pool用于存储那些被分配了但是没有被使用,而未来可能会使用的值,以减小垃圾回收的压力。文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-12-12
  • golang如何自定义json序列化应用详解

    golang如何自定义json序列化应用详解

    son格式可以算我们日常最常用的序列化格式之一了,下面这篇文章主要给大家介绍了关于golang如何自定义json序列化应用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧
    2018-08-08
  • Go语言开发实现一个图片批量压缩工具

    Go语言开发实现一个图片批量压缩工具

    在日常开发和办公中,图片体积过大会带来不少困扰,本文将使用Go语言编写一个图片批量压缩工具,文中的示例代码讲解详细,需要的可以了解下
    2025-09-09
  • golang flag简单用法

    golang flag简单用法

    本篇文章介绍了golang flag包的一个简单的用法,希望通过一个简单的实例,能让大家了解它的用法,从中获得启发
    2018-09-09
  • 解决Golang 中使用WaitGroup的那点坑

    解决Golang 中使用WaitGroup的那点坑

    这篇文章主要介绍了解决Golang 中使用WaitGroup的那点坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 详解如何在Golang中监听多个channel

    详解如何在Golang中监听多个channel

    这篇文章主要为大家详细介绍了如何在Golang中实现监听多个channel,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-03-03
  • 浅析Go设计模式之Facade(外观)模式

    浅析Go设计模式之Facade(外观)模式

    本文将介绍外观模式的概念、结构和工作原理,并提供一些在Go中实现外观模式的示例代码,通过使用外观模式,可以降低代码的耦合度,提高代码的可维护性和可读性,需要的朋友可以参考下
    2023-05-05

最新评论