go 笔记 第七章 golang 的函数 func 方法

这篇具有很好参考价值的文章主要介绍了go 笔记 第七章 golang 的函数 func 方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

声明函数

func 函数名(入参1 类型, 入参2 类型,… )(出参1 类型, 出参2 类型…){
函数体,写逻辑
出参一定要全部 return,
return 出参
}

函数内部不可以声明带名字的函数,可以声明匿名函数和自执行函数

函数名大写可以被其他包调用,小写私有,变量名也是一样

return 后面可以不写出参变量名

func main() {
	a, b := t1(2, 8)
	fmt.Println(a, b)

}

func t1(a int, b int) (ret1 int, ret2 int) {
	ret1 = a
	ret2 = 90
	//return  ret1, ret2
	return
}

// 2 90

匿名函数
a := func(){}
不定参函数
相当于 python 的 (*args, **kwargs)

func main() {
un(1, 2, 4, 5, "hello")
b := []interface{}{2, 4, 5, "hello"}
// 将切片传入不定参函数
un(1, b...)
}

// 不定项参数放在最后一位
func un(a int, b ...interface{}) {
fmt.Println(a, b)
for index, value := range b {
fmt.Println(index, value)
}

}
/*
1 [2 4 5 hello]
0 2
1 4
2 5
3 hello

*/

自执行函数

func main() {
	// 自执行函数
	func(a int) {
		fmt.Println("hello", a)
	}(9)
}
//hello 9

闭包函数
函数返回一个函数就叫闭包函数

func main() {
	mo()(4)
}

func mo() func(int) {
	return func(i int) {
		fmt.Println("闭包函数", i)
	}
}
//闭包函数 4

延迟调用 defer,先进后出文章来源地址https://www.toymoban.com/news/detail-552016.html

func main() {
	defer d2()
	defer d()
	fmt.Println("hello")
}

func d() {
	fmt.Println("defer print")
}

func d2() {
	fmt.Println("defer 2")
}

/*
hello
defer print
defer 2

*/

到了这里,关于go 笔记 第七章 golang 的函数 func 方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【高数笔记】第七章 微分方程

    微分方程 :含有导数的方程叫微分方程 阶 :微分方程的导数最高是几阶导数。微分方程中所出现的未知函数的最高阶导数的阶数,叫做微分方程的阶 解 :微分方程的解是一个函数,将这个函数代入,方程为恒等式。 通解 :如果微分方程的解中含有任意常数,且任意常数的

    2024年02月08日
    浏览(62)
  • 【现代控制理论笔记】——第七章:稳定性

    1. 稳定性的概述 系统的稳定性分为基于输入输出描述的 外部稳定性 和基于状态空间描述的 内部稳定性 。 1.1 外部稳定性(BIBO稳定): 任何一个有界输入 u ( t ) u(t) u ( t ) ,对应的输出 y ( t ) y(t) y ( t ) 均有界。 ∣ ∣ u ( t ) ∣ ∣ ≤ β ∞ ||u(t)||leq betainfty ∣∣ u ( t ) ∣∣

    2024年01月22日
    浏览(27)
  • 《操作系统真象还原》学习笔记:第七章 中断

    由于 CPU 获知了计算机中发生的某些事,CPU 暂停正在执行的程序,转而去执行处理该事件的程序,当这段程序执行完毕后,CPU 继续执行刚才的程序。整个过程称为中断处理,也称为中断。 把中断按事件来源分类,来自CPU外部的中断就称为外部中断,来自CPU内部的中断就称为

    2024年02月11日
    浏览(34)
  • SVM——《统计学习方法第七章》

    在第二章中我们学过感知机,它是最小化所有误分类点到超平面的距离之和, M 为误分类点的集合,得到的分离超平面是不唯一的。 min ⁡ ω , b [ − ∑ x i ∈ M y i ( ω ⋅ x i + b ) ] min_{omega,b}[-sum_{x_i in M}y_i (omegacdot x_i+b)] ω , b min ​ [ − x i ​ ∈ M ∑ ​ y i ​ ( ω ⋅ x i ​

    2024年02月08日
    浏览(32)
  • 动力节点最新Redis7笔记-第七章Redis缓存

    7.1.1 Jedis简介 Jedis是一个基于java的Redis客户端连接工具,旨在提升性能与易用性。 7.1.2 创建工程 首先创建一个普通的Maven工程01-jedis,然后在POM文件中添加Jedis与Junit依赖。 7.1.3 使用Jedis实例 Jedis基本使用十分简单,其提供了非常丰富的操作Redis的方法,而这些方法名几乎与R

    2024年02月07日
    浏览(49)
  • 人工智能 :一种现代的方法 第七章 逻辑智能体

    本文旨在讲清楚: KBA(knowledge based agent)与逻辑 模型,有效性,可满足性,蕴含,推理过程 如何证明KB蕴含a(模型检验,逻辑等价,推理规则) 基于命题逻辑的Agent如何工作的 7.1 基于知识的智能体 基于知识的系统 基于知识的Agent的核心部件是其知识库,或称KB。 知识库

    2024年01月22日
    浏览(32)
  • 《Pytorch深度学习和图神经网络(卷 1)》学习笔记——第七章

    这一章内容有点丰富,多用了一些时间,实例就有四五个。 这章内容是真多啊!(学完之后又回到开头感叹) 将图像从基础像素到局部信息再到整体信息 即将图片由低级特征到高级特征进行逐级计算,逐级累计。 计算机中对图片的处理可以理解为离散微积分的过程。 利用

    2024年02月12日
    浏览(35)
  • 第七章:敏捷开发工具方法-part1-敏捷开发基础

    敏捷开发背景 速度是企业竞争致胜的关键因素,软件项目的最大挑战在于一方面需要应付变动中的需求,一方面需要在有限的时间完成项目,传统的软件工程难以满足这些要求 所以软件团队除了在技术上必须日益精进,更需要运用有效的开发流程,以确保团队能够发挥综效

    2024年02月09日
    浏览(39)
  • OBCP第七章 OB迁移-备份恢复技术架构及操作方法

    为什么需要备份恢复 为满足监管要求 防止管理员误操作后,错误数据同步到所有副本,导致数据无法恢复 防止数据库因各种故障而造成数据丢失,降低灾难性数据丢失的风险,从而达到灾难恢复的目的 硬盘驱动器损坏 黑客攻击、病毒 自然灾害、电源浪涌、磁干扰 物理备份

    2023年04月08日
    浏览(31)
  • 第七章:敏捷开发工具方法-part2-CI/CD工具介绍

    什么是CI/Cd? CI-Continuous integration : 持续集成 是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代吗行合并到一起并切相互不影响工作。 CD-continuous deployment : 持续部署 是基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境以实现交付高质量的

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包