包的引出和使用原理|学习笔记

简介: 快速学习包的引出和使用原理

开发者学堂课程【Go语言核心编程 - 基础语法、数组、切片、Map:包的引出和使用原理与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/625/detail/9593


包的引出和使用原理

内容介绍:

一、包的引出

二、包的介绍

三、包的原理


一、包的引出

image.jpeg

把所有函数写在一个地方会怎么样呢?所有代码推在 main 里面,合适吗?

这有一个 main.go 的文件,里面有一个函数 func cal()....

在里面的主函数呢,调用cal函数。

思考,我们会不会有这样的需求.

func cal()....

有一个函数 func cal2()....

func cal()....

func cal()....

问题来了,我们能把所有函数都定义到 main.go 里面吗?

从理论上说是可以的,但是一个大项目里面函数有成百上千,能把这么多函数写到一个文件里面吗?

显然是不行的,这样新的问题就来了:如何把这么多的函数写到别的地方,然后在调用。

假如有一个新的文件:

utils.go//专门用于定义常用函数,让其他文件来调用。

只要他有//引入 utlis.go 的 cal 函数就可以了。这是一种机制,我想用谁,就把他引入到相应的文件用就行了。

这种需求呢是很多的,我们不可以把所有函数放在 main.go 里面。所以我们可以把常用的函数写在一个专门的文件里面。甚至可以写在其他文件,不是只写在这一个,还有很多文件。

还可以新建一个文件,专门用来对数据库的操作。

Db.go//专门定义对数据库操做的函数。

相当于说别类的函数写在对应的文件里面,要用的时候引入对应文件使用机就好了。

这个时候就用到了新的知识点:

第一个叫:包;

包的作用就是达到这种效果,可以别类的把各个函数,需要的功能分散到不同的文件里面去,然后需要用的时候直接引入就可以了。


二、包的介绍

1.在实际的开发中,我们往往需要在不同的文件中,去调用其他文件的定义函数,比如 main.go 中,去使用 utlis.go 文件中的函数,如何实现?(这就是上面所讲解的东西)

2.现在有两个程序员共同开发一个 go 项目,程序员小明希望定义函数cal,程序员小强也想定义函数为 cal,两个程序员为此还吵了起来,怎么办?(这个需求是安全有可能的,因为一个项目很大,一个人很难完成)

在同一个文件里面是不能定义相同的函数名的,因为是会报错的。

所以就用到了上面的机制。

假设 utlis 是小明写的,Db.go 是小强写的,那么已经不在同一个文件里面了,也就是说不在同一个包里面了。

两个都定义函数为cal,怎么区分呢,还是用到了“包。很明显,这两个已经引出了”包的必要性了。

包的第二个作用:可以进行项目的管理

比如说让二人建一个包,个人在自己的包下面写自己的代码,这样也不冲突。


三、包的原理

包的本质就是创建不同的文件夹,来存放程序文件。

image.png

比如说这个 main.go 在一个文件夹下面,将 utlis 放在同一个文件下面,

再创建一个 utlis.go,再同一个文件建立一个 db 包,在 db 包再建立一个 db.go,这样子就把文件分开了。

相关文章
|
3天前
解释一下ConditionVariable的工作原理。
解释一下ConditionVariable的工作原理。
29 6
|
7月前
|
设计模式 算法 安全
一文带你通俗理解23种软件设计模式(推荐收藏,适合小白学习,附带C++例程完整源码)
一文带你通俗理解23种软件设计模式(推荐收藏,适合小白学习,附带C++例程完整源码)
187 0
|
3天前
|
Unix Linux 测试技术
C++封装详解——从原理到实践
C++封装详解——从原理到实践
53 0
|
7月前
|
算法
100个经典c算法 | 程序源码
100个经典c算法 | 程序源码
35 0
|
11月前
|
存储 编译器 C语言
【C++】内存对齐原理及详解(附带相关案例)
【C++】内存对齐原理及详解(附带相关案例)
|
11月前
|
Java 编译器
编程基础|如何解决编程中的代码错误问题
编程基础|如何解决编程中的代码错误问题
173 0
|
网络协议 数据中心
网络一共分为多少种?底层原理是什么?
网络一共分为多少种?底层原理是什么?
108 0
|
编解码 缓存 NoSQL
7点 讲明白地图切片的概念与原理
7点 讲明白地图切片的概念与原理
332 0
|
XML 存储 Java
【深入浅出Spring原理及实战】「源码原理实战」从底层角度去分析研究PropertySourcesPlaceholderConfigurer的原理及实战注入机
【深入浅出Spring原理及实战】「源码原理实战」从底层角度去分析研究PropertySourcesPlaceholderConfigurer的原理及实战注入机
127 0
【深入浅出Spring原理及实战】「源码原理实战」从底层角度去分析研究PropertySourcesPlaceholderConfigurer的原理及实战注入机