Golang小白学习Go——第二天函数(The Way To Go)

本文介绍了Go语言的函数使用,包括函数声明、参数传递、指针、变长参数、回调函数、匿名函数以及defer关键字和闭包的概念。强调了Go语言中参数传递的值拷贝特性,以及如何通过匿名函数实现回调和闭包的功能。
摘要由CSDN通过智能技术生成

函数

注:函数不能嵌套,但匿名函数可以嵌套在函数中

函数声明

// 函数声明
func functionName(paraName type, paraName type, ...)(returnName type, returnName type, ...){}

// eg:
func Add(x int, y int)(z int){
	z = x + y
	return
}

函数多个形参名或返回值的类型相同时,可以一起声明。

func functionName(a, b, c int, d, e, f string){
	do something
}

函数传递参数时,必须按照形参的顺序依次传递。

切片(slice)、字典(map)、通道(channel)、接口(interface)这些传递的都是指针。

声明传递指针的形参

func funcName(a *type) int {
	do something
}

对于Go而言,传递参数时,均是值拷贝,区别是拷贝的是值还是指针。

传递变长参数

若函数的最后一个形参采用 arg … type 的形式,那么这个函数就可以处理变长参数。变长参数能够以索引的形式读取数据。变长参数存储可以理解为数组。

func funcName(arg ...type)(return list){
	do something
    return 
}

// eg:
func myFunction(s ...int)(a int){
    do something
    return 
}

函数作为参数

函数可以作为其他函数的参数,然后在其他函数中调用,这叫回调。

// 回调实例
package main

import "fmt"

func main(){
	callBack(Add)
}

func Add(a int, b int){
	fmt.Printf("The sum of %d and %d is :%d", a, b, a + b)
}

func callBack(f func(int, int)){
	f(2, 3)
}

匿名函数

匿名函数是指没有定义名字符号的函数。

func(param list)(return list){
	return ...
}

//eg:
func(a, b int) int{
	return a + b
}

匿名函数可以直接调用、可以赋值给变量、可以作为返回值、可以作为函数的参数。

defer关键字

defer关键字作用是将某一语句推迟到函数返回之前执行。

闭包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

West_East

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值