包的快速入门|学习笔记

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

开发者学堂课程【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 监控 druid
Druid未授权访问 漏洞复现
Druid未授权访问 漏洞复现
18647 0
|
缓存 应用服务中间件 Go
Go打包和部署:从编译到运行的全指南
本文介绍了Go语言项目的打包和部署方法,包括使用`go run`、`go build`和`go install`命令进行编译,以及跨平台交叉编译。文章还提到了编译参数如`-x`、`-n`和`-race`等。此外,还讨论了如何利用第三方工具(如go-bindata)打包非Go文件,以及清理编译缓存和压缩二进制文件。最后,文中展示了如何使用supervisor和Docker进行部署,并提供了Nginx的反向代理配置示例。
4293 1
|
Java
Java - java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap
Java - java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap
821 0
|
4天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
5天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1093 152
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1770 9
|
10天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
701 152