包的快速入门|学习笔记

简介: 快速学习包的快速入门

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

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


包的快速入门

内容介绍:

一、包的基本概念

二、包的三大作用

三、包的具体使用

四、包使用的快速入门案例演示

一、包的基本概念

go 的每一个文件都是属于一个包的,也就是说 go 是以包的形式来管理文件和项目目录结构的。(也就是说我们每一个文件都是一个包,如果文件不属于一个包是不可能的)


二、包的三大作用

1.区分相同名字的函数,变量等标识符(在不同的包下面可以写相同的函数名。变量名)

2.当程序文件很多时,可以很好的管理项目(我们不可能把所有文件把所有函数都写在一个 main.go 里面去,这是不现实的,我们必须要用一种包的形式把所有文件分门别类的放好。)

3.控制函数、变量等访问范围,即作用域

image.png

三、包的具体使用

两个特别重要的指令:

1.打包指令 packange 包名

在我们写过的 packange main,这就是打了一个包

2.引入包指令 import “包的路径”

我们要去在一个文件里用另外一个包的函数或者变量,就 import,就是引入,具体来说就是我们画的图

当我们想去用这个包下面的文件的函数,就 import,选上引入的包的路径。

引进去过后,调用的时候,包名。(这时候函数要首字母大写,不然是无法调用的,这也就显示出了控制函数、变量等访问范围)

快速入门案例,这个案例就以刚才讲解的方式来完成。


四、包使用的快速入门案例演示

说明:

包快速入门-Go 相互调用函数,我们将 func Cal 定义到文件 utils.go,将 utils.go放到一个包中,当其他文件需要使用到 utils.go 的方法时,可以 import 该包,就可以使用了。【为演示,新建项目目录结构】

代码演示:

新建一个文件夹 main 包,将目录的 main.go 移到 main 包里面,在另一个文件夹建立一个 utils,在 utils 新建一个 utils.go

image.jpeg

//将计算的功能,放到一个函数中,然后在需要使用调用即可

//为了让其他包文件使用 Cal 函数,需要c大写类似其他语言的 Public

(假设是小写,调用那边肯定也是小写,但是执行的时候,一保存,就会提示信息connot  refer to unexported name utils.cal;意思就是不可导出)

(在go语言里,把字母大写有一个专用术语叫做该函数可导出)

Func Cal(n1 float64,n2 float64,operator byte) float64{

Var res float64

Switch operator{

Case’+’:

Res=n1+n2

Case’-’:

Res=n1-n2

Case’*’:

Res=n1*n2

Case’/’:

Res=n1/n2

Derfault:

Fmt.println(“操作符错误”...)

}

Return res

}

保存后代码会显示错误,会提示函数未定义过,就好比写完了却并不引进来一样,就用不了。改完后跑一下看效果.

保留结果精度方法:手册

%.2f 默认宽度,精度2

我们就是用包的案例封装了一下。

Utils.go文件

main.go文件

Package utils

Import(

“fmt”

“go code/chapter06/func demo01/utils”

(调用的时候包名.函数名) 导入包

相关文章
|
SQL Java 数据库连接
sql语句能查询出来,mybatis未查询出结果问题解决
sql语句能查询出来,mybatis未查询出结果问题解决
1055 0
|
机器学习/深度学习
一文弄清池化层(pooling)的作用
一文弄清池化层(pooling)的作用
shared_ptr能和基于引用计数的智能指针混用吗?
shared_ptr能和基于引用计数的智能指针混用吗?
|
存储 编解码 监控
使用oss服务管理对象
使用oss服务管理对象
164 1
|
JSON NoSQL Java
图数据库 NebulaGraph 的 Java 数据解析实践与指导
图数据库 NebulaGrpah 的论坛和微信群里,有不少用户问及了 Java 客户端数据解析的问题。在本文教你一种简单的方式同返回结果交互,快速、即时地拿到解析数据。
333 0
|
Java
JAVA判断号码是手机还是固话并查询归属地
JAVA判断号码是手机还是固话并查询归属地
1026 0
|
存储 SQL 数据库
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(5)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(5)
193 0
|
存储 人工智能 算法
人脸检测实战终极:使用 OpenCV 和 Python 进行人脸对齐
这篇博文的目的是演示如何使用 OpenCV、Python 和面部标志对齐人脸。 给定一组面部标志(输入坐标),我们的目标是将图像扭曲并转换为输出坐标空间。
734 0
人脸检测实战终极:使用 OpenCV 和 Python 进行人脸对齐