Golang 学习之旅------第六章 函数

本文深入探讨了Go语言中的函数,包括函数的基本概念、包管理、函数调用机制、注意事项和细节。重点讲解了包的创建、导入、作用域以及函数的递归调用和错误处理。此外,还介绍了Go的特殊函数如init、匿名函数和闭包,以及内置函数的使用。通过对各种函数特性的讨论,帮助读者更好地理解和应用Go语言。
摘要由CSDN通过智能技术生成

一、函数的基本介绍

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).计算两个数,并返回
在这里插入图片描述

2.return语句
2.1 基本语法和说明
在这里插入图片描述
说明:
a.如果返回多个值时,在接收时,希望忽略某个返回值,可以使用_符合表示占位忽略
b.如果返回值只有一个,(返回值类型列表)可以不写()

2.2 案例演示1
a.要求:使用函数,可以计算两个数的和和差,并返回结果
b.代码示例
在这里插入图片描述
2.3 案例演示2
a.要求
一个细节说明: 希望忽略某个返回值,则使用 _ 符号表示占位忽略
在这里插入图片描述

3.函数的递归调用
3.1 基本介绍
一个函数在函数体内又调用了本身,我们称为递归调用

3.2 递归调用快速入门
(1).案例1
在这里插入图片描述

(2).案例2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值