GO语言导入自己写的包(同级目录和不同目录)

 更新时间:2024年09月26日 10:31:29   作者:素质白嫖怪  
本文介绍了如何在Go语言项目中导入同级目录和不同目录的包,详细解释了创建文件结构、编写主函数、同级目录和不同目录方法的调用,适合初学者参考,帮助理解Go项目的基本构建和包管理

作为自学小白,困扰了我好久的问题,解决这个问题后,记录该文章 用以帮助后续刚入门的朋友

一、在GOPATH环境变量里的src文件下创建一个练习文件test2(不能含有下划线)

二、创建一个主函数main.go(每一个项目中都必须有一个main包),say.go(用于展示同级目录),calc文件夹,且calc文件夹内创建一个calc.go(用于展示不同级目录)

1、调用同级目录的方法

项目结构如下图

在main.go中代码如下

package main //每个程序必须要有的一个包 main

import "fmt"

func main() {
	fmt.Println("我是main.go里面的main函数")
}

在say.go中的代码如下

package main  //因为和main.go函数是同级,所以只能使用和main.go一样的包名 : main  不然会找不到

import "fmt"

func sayHello() {		
	fmt.Println("我是say.go里面的sayHello函数")
}

这个时候 在main.go中的main函数可以直接调用同级目录say.go中的sayHello函数。输入同级代码时会出现提示

在main函数中直接使用即可  sayHello(),结果如下

2、调用不同目录的包

首先在当前的目录中初始化(该演示项目为test2,在终端中 输入go mod init '当前的项目名'),初始化结束后,会发现在项目中多了一个go.mod文件

go mod init test2

打开go.mod文件

module test2

go 1.22.4

在calc文件夹中的calc.go中填写以下代码 (注意 共有 和 私有  方法)

package calc  //包名最好和文件夹名一致

//方法名的首字母为大写,意味着可以让其他目录调用(共有)
func Add(a, b int) int {
	return a + b
}
//方法名的首字母为小写,意味着只能让同一个包名的使用(私有)
func minus(a,b int) int  {
	return a - b
}

 在main.go中引入calc文件夹里的包

package main //每个程序必须要有的一个包 main

import "fmt"
import "test2/calc" //test2 是go.mod中module后面的值, /  后面接你要导入的文件夹

//也可以使用 improt ("fmt" "test2/calc")

func main() {
	fmt.Println("我是main.go里面的main函数")
	sayHello()

	result := calc.Add(1, 2)  //能够使用calc包里面的共有函数Add;如果使用私有函数就会报错
	fmt.Printf("result:%d", result)
}

至此 调用同级目录和不同级目录的包 就成功实现了 

到此这篇关于GO语言导入自己写的包(同级目录和不同目录)的文章就介绍到这了,更多相关GO语言导入自己写的包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Golang观察者模式优化订单处理系统实例探究

    Golang观察者模式优化订单处理系统实例探究

    当涉及到订单处理系统时,观察者设计模式可以用于实现订单状态的变化和通知,在这篇文章中,我们将介绍如何使用Golang来实现观察者设计模式,并提供一个基于订单处理系统的代码示例
    2024-01-01
  • Golang中的[]byte与16进制(String)之间的转换方式

    Golang中的[]byte与16进制(String)之间的转换方式

    这篇文章主要介绍了Golang中的[]byte与16进制(String)之间的转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Go操作redis与redigo的示例解析

    Go操作redis与redigo的示例解析

    这篇文章主要为大家介绍了Go操作redis与redigo的示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Go语言入门之基础语法和常用特性解析

    Go语言入门之基础语法和常用特性解析

    这篇文章主要给大家讲解了Go语言的基础语法和常用特性解析,比较适合入门小白,文中通过代码示例介绍的非常详细,对我们学习Go语言有一定的帮助,需要的朋友可以参考下
    2023-07-07
  • 利用go语言判断是否是完全二叉树

    利用go语言判断是否是完全二叉树

    这篇文章主要介绍了利用go语言判断是否是完全二叉树,当一个节点存在右子节点但是不存在左子节点这颗树视为非完全二叉树,通过利用GO语言判断来判断出否是完全二叉树,详细内容参考如下
    2022-05-05
  • golang利用unsafe操作未导出变量-Pointer使用详解

    golang利用unsafe操作未导出变量-Pointer使用详解

    这篇文章主要给大家介绍了关于golang利用unsafe操作未导出变量-Pointer使用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-08-08
  • golang判断两个事件是否存在冲突的方法示例

    golang判断两个事件是否存在冲突的方法示例

    这篇文章主要为大家详细介绍了golang判断两个事件是否存在冲突的方法示例,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • go语言LeetCode题解944删列造序示例详解

    go语言LeetCode题解944删列造序示例详解

    这篇文章主要为大家介绍了go语言LeetCode题解944删列造序示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Go每日一库之zap日志库的安装使用指南

    Go每日一库之zap日志库的安装使用指南

    这篇文章主要为大家介绍了Go每日一库之zap安装使用示例学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • go通过编码缩短字符串的长度实现方法步骤

    go通过编码缩短字符串的长度实现方法步骤

    这篇文章主要为大家介绍了go通过编码缩短字符串的长度实现方法步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01

最新评论