1.函数的基本概念
为完成某一功能的程序指令(语句)的集合,称为函数。在Go中,函数分为:自定义函数、系统函数。
2.函数的基本语法
说明:
(1).形参列表:表示函数的输入
(2).函数中的语句:表示为了实现某一个功能代码块
(3).函数可以有返回值,也可以没有
3.快速入门案例
3.1 要求:输入两个数,再输入一个运算符(+,-,*,/),得到结果,用函数完成
3.2 代码示例:
1.包的引出
(1).在实际的开发中,我们往往需要在不同的文件中,去调用其它文件的定义的函数,比如main.go中去使用utils.go文件中的函数。如果实现?-----使用包的概念
(2).现在有两个程序员共同开发了一个GO项目,程序员xiaoming希望定义函数cal,程序员xiaoqiang也想定义函数也叫cal。如果实
现?-----使用包的概念
2.包的原理图
包的本质实际上就是创建不同的文件夹,来存放程序文件
画图说明下包的原理:
3.包的基本概念
go的每一个文件都是属于一个包的,也就是说go是以包的形式来管理文件和项目目录结构的
4.包的作用
(1).区分相同名字的函数、变量等标识符
(2).当程序文件很多时,可以很好的管理项目
(3).控制函数、变量等访问范围,即作用域
5.包的相关说明
(1).打包基本语法:package 包名
(2).引入包基本语法:import “包的路径”
6.包使用的快速入门
6.1 基本要求
包快速入门-Go 相互调用函数:我们将 func Cal 定义到文件 utils.go , 将 utils.go 放到一个包中,当其它文件需要使用到 utils.go 的方法时,可以 import 该包,就可以使用了.
6.2 代码示例
utils/utils.go:
main/main.go:
7.包使用的注意事项和细节讨论
7.1 在给一个文件打包时,该包对应一个文件夹,比如这里的utils文件夹对应的包名就是utils,文件的包名通常和文件所在的文件夹名一致,一般为小写字母
7.2 当一个文件要使用其它包函数或变量时,需要先引入对应的包
7.3 为了让其它包的文件,可以访问到本包的函数,则该函数名的首字母需要大写,类似其它语言的public,这样才能跨包访问。比
如utils.go的
7.4 在访问其它包函数、变量时,其语法是 包名.函数名,比如这里的main.go文件中的
7.5 如果包名较长,Go支持给包取别名,注意细节:取名后,原来的包名就不能使用了
说明: 如果给包取了别名,则需要使用别名来访问该包的函数和变量
7.6 在同一包下,不能有相同的函数名,也不能有相同的全局变量名,否则报重复定义
7.7 如果要编译成一个可执行程序文件,就需要将这个包声明为main,即package main。这个是一个语法规范,如果是写要给
库,包名可以自定义
如图所示:
1.函数-调用过程
(1).介绍
为了让大家更好的理解函数调用过程,看2个案例,并画出示意图
要求:传入一个数并+1
说明:
a.在调用一个函数时,会给该函数分配一个新的空间,编译器会通过自身的处理让这个新的空间和其它的栈的空间区分开来
b.在每个函数对应的栈中,数据空间时独立的,不会混淆
c.当一个函数调用完毕(执行完毕)后,程序会销毁这个函数对应的栈空间
2.return语句
2.1 基本语法和说明
说明:
a.如果返回多个值时,在接收时,希望忽略某个返回值,可以使用_符合表示占位忽略
b.如果返回值只有一个,(返回值类型列表)可以不写()
2.2 案例演示1
a.要求:使用函数,可以计算两个数的和和差,并返回结果
b.代码示例
2.3 案例演示2
a.要求
一个细节说明: 希望忽略某个返回值,则使用 _ 符号表示占位忽略
3.函数的递归调用
3.1 基本介绍
一个函数在函数体内又调用了本身,我们称为递归调用
(2).案例2