go语言中函数基础用法

函数

基本表达

func funcName(parametername type1, parametername type2) (output1 type1, output2 type2) {
//这里是处理逻辑代码
//返回多个值
return value1, value2
}

可变参

先定义函数可接收可变参

func myfunc(arg ...int) {}

arg …int表示这个函数可以接受不定数量的参数。

可变参实际上是切片

注意事项:

1.如果一个函数的参数,是可变参数,同时还有其他参数,可变参数要放在参数列表的最后

2.一个参数列表中最多只能由一个可变参数

函数是一种特殊的变量

实际上函数是一种变量,可以直接使用var定义

//此时的函数为nil(空)
var c func(int,int)
//可以将同类型的函数赋值给c
c=f   			//f为已声明的函数

//也可以
f1:=f		

匿名函数

定义在主函数中,一般只能用一次

package main

import "fmt"

func main()  {
	func() {
		fmt.Println("这是一个匿名函数")
	}()		//通过这个小括号直接调用函数,括号里放参数
    
}

也可以将匿名函数赋值给其他函数,实现多次调用

fun := func() {
		fmt.Println("这是一个匿名函数")
	}		//此时不使用小括号调用匿名函数
	fun()		//fun可以多次调用	

回调函数

将其他函数作为参数,并进行调用

例如

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

func oper(a,b int,fun func(int,int)int) int   {
	fmt.Println(a,b,fun)	//打印数值
	res:=fun(a,b)
	return res
}

闭包

go语言支持函数式的表达

支持将一个函数作为另一个函数的参数

也支持函数将另一个函数作为函数返回值

func increment()func()int  {
	return func() int{
		fmt.Println("改函数作为increment函数的返回值")
	}
}

一个外层函数中,有内层函数,该内层函数中会操作外层函数的变量

func increment()func()int  {
	i:=1
	return func() int{
		fmt.Println(i)
	}
}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值