Golang 教程3——包

news2024/9/22 0:59:16

Golang 教程3——包

注意,该文档只适合有编程基础的同学,这里的go教程只给出有区别的知识点

文件结构
在这里插入图片描述

前置工作

在文件testproject01目录下执行 ‘go mod init gocode/testproject01’

(base) PS E:\Goproject\src\gocode\testproject01> go mod init gocode/testproject01
go: creating new go.mod: module gocode/testproject01
go: to add module requirements and sums:
        go mod tidy
1、 如何导入其他包的函数(我们不可能把所有的函数都放在同一个包中,可以分门别类的把函数放在不同的源文件中)
1.1 main文件下
package main //1、 包的声明, 建议:包的声明建议和这个包所在的文件夹同名
//2、main包是程序的入口包, 一般main函数会放在这个包下

//3、 包名是从$GOPATH/src/开始算起,使用/进行分割
import	(
	//step1: 导包, 导入的是所在的文件夹的路径
	"gocode/testproject01/db"
)

func main (){
	//2、调用
	db.ConnectDB()
}
1.2 dbutil文件下
package db

import "fmt"

// 连接数据库的函数, 注意: 如果该函数想被其他包访问到,则函数名首字母得大写	
func ConnectDB() {
    fmt.Println("success to connect db")
}

1.3 执行结果

(base) PS E:\Goproject\src\gocode\testproject01> go run ./main/main.go
success to connect db
2、 包的名字与文件夹的名字可以不同

文件结构

在这里插入图片描述

2.1 mian文件
package main //1、 包的声明, 建议:包的声明建议和这个包所在的文件夹同名
//2、main包是程序的入口包, 一般main函数会放在这个包下

//3、 包名是从$GOPATH/src/开始算起,使用/进行分割
import	(
	//step1: 导包
	"gocode/testproject01/db"
)

func main (){
	//2、调用, 此时aaa为所声明的包的名字
	aaa.ConnectDB()
}
2.2 db文件
package aaa //文件声明的报名

import "fmt"

// 连接数据库的函数
func ConnectDB() {
    fmt.Println("success to connect db")
}

2.3 执行结果

(base) PS E:\Goproject\src\gocode\testproject01> go run ./main/main.go
success to connect db
3、 一个目录下的同级文件归属于同一个包

文件结构

在这里插入图片描述

3.1 mian文件夹下的main文件
package main //1、 包的声明, 建议:包的声明建议和这个包所在的文件夹同名
//2、main包是程序的入口包, 一般main函数会放在这个包下

//3、 包名是从$GOPATH/src/开始算起,使用/进行分割
import	(
	//step1: 导包
	"gocode/testproject01/db"
)

func main (){
	//2、调用
	aaa.ConnectDB()
	bbb.ConnectDB2()
}

3.2 db文件夹下的util文件
package bbb //包名1 

import "fmt"

// 连接数据库的函数
func ConnectDB2() {
    fmt.Println("success to connect db")
}
3.3 db文件夹下的dbutil文件
package aaa //包名2

import "fmt"

// 连接数据库的函数
func ConnectDB() {
    fmt.Println("success to connect db")
}
3.4 结果展示
(base) PS E:\Goproject\src\gocode\testproject01> go run ./main/main.go //aaa、 bbb在属于同一个包下同一级文件,又包名不同,所以会报错
main\main.go:7:2: found packages aaa (dbutil.go) and bbb (util.go) in E:\Goproject\src\gocode\testproject01\db
3.5 若是同包名的情况(此处改bbb为aaa)
a. util文件
package aaa

import "fmt"

// 连接数据库的函数
func ConnectDB2() {
    fmt.Println("success to connect db")
}
b. main文件
package main //1、 包的声明, 建议:包的声明建议和这个包所在的文件夹同名
//2、main包是程序的入口包, 一般main函数会放在这个包下

//3、 包名是从$GOPATH/src/开始算起,使用/进行分割
import	(
	//step1: 导包
	"gocode/testproject01/db"
)

func main (){
	//2、调用
	aaa.ConnectDB()
	aaa.ConnectDB2()
}
3.6 结果展示
(base) PS E:\Goproject\src\gocode\testproject01> go run ./main/main.go
success to connect db
success to connect db

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux学习——Ubuntu上QT添加资源

在我们平时的车载控制屏幕上一般不会只有文字和黑白的按钮,为了美观和容易操作,在设计的时候一般会添加图片或者是图标,来让界面的人机交互达到最好,那么我们今天就来学习一下如何在QT中添加资源图片! 1.传输照片&…

easy_fastapi Python 后端开发框架

GitHub easy_fastapi by one-ccs 遵循 MIT 开源协议 Easy FastAPI 基于 FastAPI 开发的后端框架,集成了 SQLAlchemy、Pydantic、Alembic、PyJWT、PyYAML、Redis 等插件,旨在提供一个高效、易用的后端开发环境。该框架通过清晰的目录结构和模块化设计&am…

GNU/Linux - Linux kernel memory access

User space memory access from the Linux kernel An introduction to Linux memory and user space APIs By M. Jones 10 August 2010 Archive date: 2023-08-31 虽然字节可能是 Linux 中内存的最低可寻址单位,但页面才是内存的可管理抽象。本文首先讨论 Linux …

cuda,torch,paddle向下兼容

1、第一次配置yolov9模型时,使用的cuda的版本是11.6,torch和torchvision都是对应版本的 使用的tensorrt版本8.6,可以正常跑yolov9 其它不动,直接将cuda版本换为cuda11.7,依然可以正常运行 2、paddleseg paddle同样安…

3.1 线性结构

令序列X、Y、Z的每个元素按顺序进栈,且每个元素进栈.出栈各一次,则不可能得到出栈序列( )。 A. XYZ B. XZY C. ZXY D. YZX 正确答案是 C。 解析 ZXY不可能得到这个序列,因为当Z最先出栈,说明X、Y已经入栈&a…

【FRP 内网穿透】

文章目录 一、什么叫内网穿透1、内网穿透技术的描述2、内网穿透技术的工作方式通常包括以下几个步骤 二、用内网穿透解决了什么问题三、常见的内网穿透解决方式1、FRP (开源)2、花生壳(商业)3、ZeroTier(开源 商业&…

【js逆向专题】4.python调用JS和扣代码

小节目标: 掌握 python调用js代码方式熟悉 js开放接口进行调用了解 补环境的基本概念掌握 js调试技巧 一. pyexecjs的使用 1. 简介 PyExecJS 是一个 Python 库,用于在 Python 环境中执行 JavaScript 代码。它实际上是对 ExecJS 库的 Python 封装,Exec…

Spring数据类型转化

HTTP请求中携带的queryString和form-data数据&#xff08;文件除外&#xff09;都是是String类型。那么在Controller上怎么可以直接指定数据类型呢。其实是Spring默认帮我们做了类型转化。 内置数据类型转换器介绍 Converter<S, T> String -> Integer GetMapping(&…

c++ 146 三目运算符

const修饰指向的内存你空间不能被修改 c语言中的const冒牌货 符号表c 卸载 undief

AWTK 1.8 发布

1.8 版本更新 1. 细节完善 大量细节完善请参考 最新动态 2. 新增文档 拖入文件事件如何使用 packed image如何自定义资源加载方式如何使用 CMake 构建 AWTK 应用如何将资源编译到应用程序并使用它们关于自定义控件的 offset 的使用注意事项 3. 新增重要特性 使用 svgtiny 解…

斑马线识别检测系统源码分享

斑马线识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

MAC 、 IP ARP

MAC地址 基本概念 MAC地址是以太网的MAC子层所使用的地址——数据链路层 使用点对点信道的数据链路层不需要使用地址 使用广播信道的数据链路层必须使用地址来区分各主机 实现同一个广播信道上的不同主机之间的通信 每个主机都必须要有一个唯一的表示——一个数据链路层地址…

【计算机网络】应用层HTTP协议

我们已经实现过应用层协议&#xff0c;但也要看一看成熟的应用层协议 目录 1 HTTP协议11 URL12 urlencode 和 urldecode13 HTTP 协议请求与响应格式请求格式响应格式 14 界面的基本处理显示基本主页显示图片页面跳转 15 常见header16 状态码161 404举例162 关于3开头的状态码 1…

JavaEE 第20节 用TCP套接字实现简单回显服务器

这里写目录标题 一、API介绍ServerSocketSocket 二、创建简单的回显服务器服务器端客户端 一、API介绍 ServerSocket 构造方法 方法签名方法说明ServerSocket(int port)创建⼀个服务端流套接字Socket&#xff0c;并绑定到指定端⼝ 关于此构造方法的注意事项&#xff1a; Ser…

栈和队列的习题详解(1):有效的括号

前言&#xff1a; 在差不多二十天前小编写过栈和队列的详解&#xff0c;本来我想当时写完那两个结构之后就继续写它们的习题&#xff0c;但是写完那几篇博客以后&#xff0c;我就开始狂玩了十几天&#xff0c;我在上篇博客也说过&#xff0c;导致我在刚开学的时候就忘记了这个习…

mac的使用

mac使用python的问题 对于python的虚拟环境&#xff0c;其实是基于已经安装到本地的python来安装不同的包。&#xff08;之前我的mac上只安装了python3.9.6 &#xff0c;安装的位置为/usr/bin/python3&#xff09;然后我在vscode里怎么找都找不到如何弄一个python3.7.6 的版本…

使用Pywin32和其他库控制Office软件进行自动化操作

目录 引言 Pywin32概述 基本概念 安装与配置 基本使用 Word自动化操作 文档创建与编辑 文档格式化 宏的运行 PowerPoint自动化操作 演示文稿的创建与编辑 幻灯片内容的格式化 高级应用&#xff1a;从Word自动生成PPT 读取Word文档中的内容。 保存生成的PowerPoi…

NetSuite AI 图生代码

去年的ChatGPT热潮期间&#xff0c;我们写过一篇文章说GTP辅助编程的事。 NetSuite GPT的辅助编程实践_如何打开netsuite: html script notes的视图-CSDN博客文章浏览阅读2.2k次&#xff0c;点赞4次&#xff0c;收藏3次。作为GPT综合症的一种表现&#xff0c;我们今朝来探究下…

SOMEIP_ETS_076: Wrong_Method_ID

测试目的&#xff1a; 验证当设备&#xff08;DUT&#xff09;接收到一个包含错误方法ID的SOME/IP请求时&#xff0c;是否能够返回错误消息或忽略该请求。 描述 本测试用例旨在检查DUT在处理一个echoUINT8方法的SOME/IP消息时&#xff0c;如果消息中包含的方法ID不正确&…

NC 寻找峰值

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 给定一个长度…