golang --- module-aware 模式下 包引入

一、文件列表如下

在这里插入图片描述
其中helloWorld目录是main包(package)所在目录,即该目录下所有的goy源文件(不包含子目录)属于main包,hello.go是mian函数所在文件

二、module-aware 模式启用

开启mod模式

go env -w GO111MODULE=on

在mod模式下,main包中需要初始化一个go,mod文件,语法如下

go mod init modulepath

本例中初始化go.mod文件如下:

go mod init  my/hello

go.mod文件内容如下

module my/hello
go 1.19

三、同一模块内的调用,即在hello.go中调用greet.go中定义的函数

hello.go

package main
func main() {// Get a greeting message and print it.//message := Hello("huster")//fmt.Println(message)Helloworld()   }

greet.go

package main
import ("fmt"
)
func Helloworld(){fmt.Println("hello world")
}

运行结果:

PS C:\Users\love1\Documents\technology\go\moduleMode\helloWorld> go run .
hello world
PS C:\Users\love1\Documents\technology\go\moduleMode\helloWorld> 

四、在某一模块中调用子目录中定义的函数,即在hello.go中调用service/work.go中定义的函数

hello.ho

package mainimport ("my/hello/service"
)
func main() {// Get a greeting message and print it.//message := Hello("huster")//fmt.Println(message)Helloworld()   work.Work()    
}

service/work.go

package  workimport ("fmt"   
)func Work() {  fmt.Println("I am a worker"    
}

以上得知,模块下的子目录可以不初始化go.mod文件,并且引入方式如下:

import ("my/hello/service"
)

my/hello 是该模块的模块路径,service是该模块所在目录的子目录

五、引用其他自定义模块

helloWorld 目录中的模块 引用 yyzc目录中模块中定义的变量。首先需要在yyzc目录下初始化一个go,mod文件,然后在helloWorld中的go.mod引用此模块,示例如下:

module my/hellogo 1.19require mymod  v1.2.3
replace mymod  => ../yyzc/

hello.go

package mainimport ("my/hello/service""mymod""fmt"
)func main() {// Get a greeting message and print it.//message := Hello("huster")//fmt.Println(message)Helloworld()   work.Work()fmt.Println(yyzc.SumA(1,2))yyzc.Helloworld()}

sum.go

package yyzcimport ("fmt"
)func Helloworld(){fmt.Println("hello world")
}func SumA(i int ,j int) int {var result intresult = i+jreturn result
}

执行结果如下:

PS C:\Users\love1\Documents\technology\go\moduleMode\helloWorld> go run .
hello world
i am a worker
3
hello world
PS C:\Users\love1\Documents\technology\go\moduleMode\helloWorld> 

注意 当引用函数的时候,还是要通过packagename来作为前缀引用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/110071.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaScript保姆级教程】JavaScript的介绍和简单语法

文章目录 前言一、javascript语言简介二、HTML中的书写位置1.1 内联方式1.2 内部文件 三、注释和结束符3.1 注释 四、alert语句总结 前言 JavaScript是一种广泛使用的脚本语言,为网页添加交互性和动态功能提供了强大的支持。在本文中,我们将深入了解Jav…

基于深度学习的加密恶意流量检测

加密恶意流量检测 研究目标定位数据收集数据处理基于特征分类算法的数据预处理基于源数据分类算法的数据预处理 特征提取模型选择基于数据特征的深度学习检测算法基于特征自学习的深度学习检测算法 训练和评估精确性指标实时性指标 应用检验改进 摘录自:Mingfang ZH…

【golang】深入理解GMP调度模型

Goroutine Go中,协程被称为goroutine,它非常轻量,一个goroutine只占几KB,并且这几KB就足够goroutine运行完,这就能在有限的内存空间内支持大量goroutine,支持了更多的并发,虽然一个goroutine的…

如何实现 pdf 转 word

前言:最直接的方式 wps 充会员可以直接转,但是单纯为了 使用这个功能有没啥必要 pdf转word方法 在线转换wps转换其他收费转换方式 在线转换 介绍在线转换,虽然样式简陋但是可以转换成功,转换以后也没有失真 http://ssyr.mynatap…

jeesite实现excel导入功能(保姆级图文教程)

文章目录 前言一、准备工作1.准备一个excel模板,放入static目录2.application.yml文件中设置文件存储路径3.使用easyexcel插件解析excel数据,pom文件导入easyexcel二、使用步骤1.列表页添加下载模板按钮2.表单页添加文件上传3. 创建excel解析对应实体4.后台完成文件上传代码,…

Vivado XADC IP核 使用详解

本文介绍Vivado中XADC Wizard V3.3的使用方法。 XADC简介 XADC Wizard Basic Interface Options: 一共三种,分别是AXI4Lite、DRP、None。勾选后可在界面左侧看到相应通信接口情况。Startup Channel Selection Simultaneous Selection:同时监…

对IP协议概念以及IP地址的概念进行简单整理

网络层重要协议 参考模型和协议栈IP协议IPv4数据报IP数据报格式IPv4地址特殊IP地址私有IP地址和公有IP地址子网划分 参考模型和协议栈 IP协议 IP协议定义了网络层数据传送的基本单元,也制定了一系列关于网络层的规则。 IPv4数据报 网络层的协议数据单元PDU 叫做分…

Webserver项目解析

一.webserver的组成部分 Buffer类 用于存储需要读写的数据 Channel类 存储文件描述符和相应的事件,当发生事件时,调用对应的回调函数 ChannelMap类 Channel数组,用于保存一系列的Channel Dispatcher 监听器,可以设置为epo…

庚顿新一代实时数据库太快了,得用对数坐标轴放大看

不可否认,实时数据处理已经成为企业数据平台的核心能力之一。如何高效处理海量而复杂的实时数据,则取决于数据库系统的架构设计和处理性能。最近,应广大用户的要求,基于飞腾开放实验室Phytium Open Laboratory(POL&…

Golang反射相关知识总结

1. Golang反射概述 Go语言的反射(reflection)是指在运行时动态地获取类型信息和操作对象的能力。在Go语言中,每个值都是一个接口类型,这个接口类型包含了这个值的类型信息和值的数据,因此,通过反射&#x…

JAVA高级技术入门(单元测试,反射,注解,动态代理)

JAVA高级技术入门(单元测试,反射,注解,动态代理) 一、Junit单元测试二、反射1.认识反射,获取类概念:快速入门:获取Class对象的三种方式 2.1获取类的构造器2.2获取类的构造器的作用&a…

【算法专题突破】滑动窗口 - 找到字符串中所有字母异位词(14)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:438. 找到字符串中所有字母异位词 - 力扣(Leetcode) 这道题很好理解,就是找出从不同位置开始的所有异位词。 2. 算法原理 那我们该如…