go语言导入自定义模块(使用go.mod)

Go语言管理项目的依赖关系和模块最开始使用的 GOROOTGOPATH 分别设置Go的安装路径和项目路径,现在版本的Golang极力推荐使用 go.mod go.work ,go.mod是Go 1.11版本中引入的一种包管理机制,主要用于管理和版本控制Go项目中使用的依赖项,go.work文件是Go 1.18版本引入,主要用于解决在同一工作空间中处理多个模块的问题。

先新建一个项目文件夹,然后进入文件夹:

复制代码
cd C:\GGboy\Gay

mkdir HappyGay

cd HappyGay

在项目根目录下运行以下命令来初始化模块

复制代码
go mod init GayBoy # init后是自定义的项目名

初始化模块成功后会显示以下内容并生成 go.mod 文件

新建一个文件夹 Say ,然后在文件夹内新建 Hello.go 文件

Go 复制代码
// Hello.go

package Say // 和JVAV一样,package后是文件夹名称

import "fmt"

// 函数首字母需要大写,方便后续导入
func Hello() {
	fmt.Println("Hello, World!")
}

在新建一个 main 文件夹,在文件夹中新建main.go文件

Go 复制代码
// main.go

package main

import "GayBoy/Say" 
// GayBoy是自己在初始化模块后的go.mod文件中自己定义的项目名称

func main() {
	Say.Hello()
}

总体结构如下

cd到main包后在终端输入命令运行程序

Go 复制代码
go run main.go

输入以下命令即可构建可运行的.exe文件

Go 复制代码
go build main.go
相关推荐
jyOverQ5 小时前
RabbitMQ 消息积压怎么办?Prefetch、消费者并发与扩容
分布式·后端·rabbitmq
2601_9620715710 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
淡海水11 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
CS_Zero12 小时前
C语言sizeof是函数吗?
c语言·开发语言
东风破_12 小时前
从跨域到 WebSocket:前端跨域方案、SSE 与双向实时通信详解
前端·后端
-今昭-12 小时前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python
行百里er13 小时前
Gateway 上别硬塞 MVC:DeferredImportSelector 看菜下锅
spring boot·后端·开源
名字还没想好☜13 小时前
Java 遍历时删元素抛 ConcurrentModificationException:fail-fast 原理与三种正确删法
后端
IT_陈寒14 小时前
React Hooks闭包陷阱差点让我加班到凌晨
前端·人工智能·后端
黑马程序员毕设14 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设