golang中的函数问题

本文探讨了Go语言中函数的一些重要特性,包括函数作为参数、函数类型、可变参数等。介绍了如何将函数作为其他函数的参数,强调了函数必须有明确的终止语句。此外,还详细阐述了函数作为类型的优势,特别是在实现通用接口时的灵活性。对于可变参数,文章解释了其内部实现机制——变参本质上是数组切片,并展示了如何在函数调用中使用变参。最后,讨论了如何处理多种类型的变参,通过使用`interface{}`实现类型安全。
摘要由CSDN通过智能技术生成

函数作为参数,函数是第一类对象,可作为参数传递,只要被调用函数的返回值个数,返回值类型和返回值的顺序与调用函数所需要的实参是一致的,就可以吧这个被调用 的函数当做其他函数的参数。

func f1(a,b,c int)

func f2(a,b int)(int,int,int)

func f1(f2(a,b))函数f1需要三个参数,同时f2返回三个参数

package main

import "fmt"

func pipe(ff func() int) int {
	return ff()
}

type FormatFunc func(s string, x, y int) string

func format(ff FormatFunc, s string, x, y int) string {
	return ff(s, x, y)
}
func main() {
	s1 := pipe(func() int { return 100 })
	s2 := format(func(s string, x, y int) string {
		return fmt.Sprintf(s, x, y)
	}, "%d,%d", 10, 20)
	fmt.Println(s1, s2)
}

有返回值的函数,必须有明确的终止语句。

函数作为类型

函数go语言中也是一种变量,前面多次通过type来定义它,它的类型就是所有拥有相同参数与相同返回值的一种函数类型

type typeName func(input1 inputType1,inp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值