Go中的函数也是一种数据类型,可以赋值给一个变量
2023-09-14 09:01:54 时间
在Go中,函数也是一种数据类型,可以赋值给一个变量,则该变量就是一个函数类型的变量了。通过该变量可以对函数调用。
这种概念类似于scala中的高阶函数
package main
import "fmt"
//定义一个函数:
func test(num int){
fmt.Println(num)
}
func main(){
//函数也是一种数据类型,可以赋值给一个变量
a := test//变量就是一个函数类型的变量
fmt.Printf("a的类型是:%T,test函数的类型是:%T \n",a,test)//a的类型是:func(int),test函数的类型是:func(int)
//通过该变量可以对函数调用
a(10) //等价于 test(10)
}
函数既然是一种数据类型,因此在Go中,函数可以作为形参,并且调用
(把函数本身当做一种数据类型)
package main
import "fmt"
//定义一个函数:
func test(num int){
fmt.Println(num)
}
//定义一个函数,把另一个函数作为形参:
func test02 (num1 int ,num2 float32, testFunc func(int)){
fmt.Println("-----test02")
}
func main(){
//函数也是一种数据类型,可以赋值给一个变量
a := test//变量就是一个函数类型的变量
fmt.Printf("a的类型是:%T,test函数的类型是:%T \n",a,test)//a的类型是:func(int),test函数的类型是:func(int)
//通过该变量可以对函数调用
a(10) //等价于 test(10)
//调用test02函数:
test02(10,3.19,test)
test02(10,3.19,a)
}
相关文章
- 化整为零优化重用,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang函数的定义和使用EP07
- 【一Go到底】第三天---变量的使用
- R语言多元(多变量)GARCH :GO-GARCH、BEKK、DCC-GARCH和CCC-GARCH模型和可视化|附代码数据
- Go的ORM也太拉跨了吧,赶紧给他封装一下
- GO语言开篇-Go语言急速入门(基础知识点)| 青训营笔记
- Go语言初始化结构体的成员变量
- Go语言垃圾回收和SetFinalizer
- Go语言通过反射访问结构体成员的值
- Go语言环境配置:在 Linux 下实现(go环境搭建linux)
- 以Go语言操作MySQL:轻松运行数据库各种查询(go语言mysql)
- Go语言操作Oracle数据库技术实践(go操作oracle)
- 数据库Go语言连接Oracle数据库的指南(go如何连接oracle)
- 程序Go语言调用Oracle数据库驱动程序指南(go oracle驱动)
- 语言Oracle中发挥神奇作用的Go语言(oracle中有go)