go-基础-3-函数-记录

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

go 函数

类似JavaScript

函数声明

func fuction_name([paramater_list]) [return_types] {
	content
}

函数类型

  • 无参无返回值函数
  • 有一个参数的函数
  • 有两个参数的函数
  • 有个返回值的函数
  • 有多个返回值的函数
// 无参无返回
func printInfo() {
	fmt.Println("printinfo")
}

// 有一个参数无返回
func printInfo1(a string) {
	fmt.Println(a)
}

// 有2个参数无返回
func printInfo2(a string, b int) {
	fmt.Println(a + string(b))
}
// 有多个参数和多个返回值
func addAndSub(a, b int) (int, int) {
	return a + b, a - b
}

形式参数和实际参数

  • 形式参数:函数定义时,用来接受外部传入数据的参数,就是形式参数
  • 实际参数:调用函数时,传给形参的实际数据叫做实际参数
  • 可变参数:函数定义时,参数名+…+类型表示可变参数;一个函数有多个参数时,可变参数一定要放最后面,并且一个函数只会有一个可变参数。

参数传递

按数据存储的特点分:

  • 值类型的数据:操作的是数据本身,int、string、bool、float64、array等(java中的基本类型)
  • 引用类型的数据:操作的是数据的地址slice、map、chan等(java中的封装类型)

值传递:传递的类型是值类型数据

引用传递:传递的是引用类型的数据

defer 延迟函数

最后执行,多个的情况下,先定义的后执行,类似栈;多用于关闭

匿名函数

//匿名函数
	f := func(a, b int) int {
		return a + b
	}
	fmt.Println(f(1, 2))
	fmt.Println(func(a, b int) int {
		return a + b
	}(3, 4))

回调函数

一个函数可以作为另一个函数的参数文章来源地址https://www.toymoban.com/news/detail-674675.html

func add(a, b int) int {
	return a + b
}
func sub(a, b int) int {
	return a - b
}

// 高阶函数,可以接受另一个函数作为参数
func op(a, b int, f func(c, d int) int) int {
	return f(a, b)
}

func main() {
	fmt.Println(op(3, 4, add))
	fmt.Println(op(3, 4, sub))
}

闭包

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

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

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

相关文章

  • go-基础-3-函数-记录

    类似JavaScript 函数声明 函数类型 无参无返回值函数 有一个参数的函数 有两个参数的函数 有个返回值的函数 有多个返回值的函数 形式参数和实际参数 形式参数:函数定义时,用来接受外部传入数据的参数,就是形式参数 实际参数:调用函数时,传给形参的实际数据叫做实

    2024年02月11日
    浏览(27)
  • 【Golang】VsCode下开发Go语言的环境配置(超详细图文详解)

    📓推荐网站(不断完善中):个人博客 📌个人主页:个人主页 👉相关专栏:CSDN专栏、个人专栏 🏝立志赚钱,干活想躺,瞎分享的摸鱼工程师一枚 ​ 话说在前,Go语言的编码方式是 UTF-8 ,理论上你直接使用文本进行编辑也是可以的,当然为了提升我们的开发效率我们还是需

    2024年02月07日
    浏览(83)
  • 100天精通Golang(基础入门篇)——第23天:错误处理的艺术: Go语言实战指南

    🌷🍁 博主猫头虎🐅🐾 带您进入 Golang 语言的新世界✨✨🍁 🦄 博客首页 ——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通

    2024年02月07日
    浏览(64)
  • 100天精通Golang(基础入门篇)——第5天: Go语言中的数据类型学习

    🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批

    2024年02月08日
    浏览(44)
  • Go语言基础之函数

    Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。 函数定义 Go语言中定义函数使用func,具体格式如下: 其中: 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名(包的概念详见

    2024年02月11日
    浏览(37)
  • 【字节跳动青训营】后端笔记整理-1 | Go语言入门指南:基础语法和常用特性解析

    **本人是第六届字节跳动青训营(后端组)的成员。本文由博主本人整理自该营的日常学习实践,首发于稀土掘金:🔗Go语言入门指南:基础语法和常用特性解析 | 青训营 本文主要梳理自 第六届字节跳动青训营(后端组)-Go语言原理与实践第一节(王克纯老师主讲) 。同时

    2024年02月13日
    浏览(55)
  • 【Go 基础篇】Go语言匿名函数详解:灵活的函数表达式与闭包

    在Go语言中,函数是一等公民,这意味着函数可以像其他类型的值一样被操作、传递和赋值。匿名函数是一种特殊的函数,它没有固定的函数名,可以在代码中被直接定义和使用。匿名函数在Go语言中具有重要的地位,它们常用于实现闭包、函数式编程和并发编程等领域。 本

    2024年02月11日
    浏览(51)
  • go语言基础一(包、变量和函数)

    go程序由一个个不同的包组成,程序的入口是名为main的包,比如我们创建一个main文件 main.go go要求每一个go文件的非注释开头必须是``` package xxx``,也就是声明该文件属于哪个包 首先我们创如下包文件夹: 这样,如果我们在 main.go 里面需要使用 cmp.go 里面的函数的话需要添加这

    2024年02月15日
    浏览(40)
  • 【Go 基础篇】Go语言日期与时间函数详解:时间的掌控与转化

    Go语言是一种快速、简洁且高效的编程语言,它在处理日期与时间方面提供了丰富的标准库函数。本文将详细介绍Go语言中处理日期与时间的函数,涵盖常用的日期时间操作、格式化、时区转换等内容,并介绍 time.Time 结构体中的相关方法。 在Go语言中,时间被表示为 time.Tim

    2024年02月11日
    浏览(45)
  • 【Go 基础篇】Go语言 init函数详解:包的初始化与应用

    在Go语言中, init() 函数是一种特殊的函数,用于在包被导入时执行一次性的初始化操作。 init() 函数不需要手动调用,而是在包被导入时自动执行。这使得我们可以在包导入时完成一些必要的初始化工作,确保包的使用具有正确的环境和状态。 本篇博客将深入探讨 init() 函数

    2024年02月11日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包