Go-08-函数与指针
2024-08-29 20:28:38
Go语言的函数本身可以作为值进行传递,既支持匿名函数和闭包,又能满足接口。
函数声明
func 函数名 (参数列表)(返回参数列表){
// 函数体
} func funcName(parametername type1,parametername type2 ...)(output1 type1 , utput2 type2){
//逻辑代码
//返回多个值
return value1,value2
}
参数类型简写
在参数列表中,如果有多个参数变量,则以逗号分隔;如果相邻变量是同类型,则可以将类型省略
func add(a,b int){
}
Go语言程序中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑。
函数变量
在Go语言中,函数也是一种类型,可以和其他类型(如int32、float等等)一样被保存在变量
匿名函数
Go语言支持匿名函数,即在需要使用函数时再定义函数。匿名函数没有函数名,只有函数体,函数可以作为一种类型被赋值给变量,匿名函数也往往以变量方式被传递。
匿名函数经常被用于实现回调函数,闭包等。
func(参数列表) (返回参数列表){
// 函数体
}
1. 在定义时调匿名函数
package main import (
"fmt"
) func main() {
func(name string){
fmt.Println("hello",name)
}("huahua")
}
2. 将匿名函数赋值给变量
package main import "fmt"
// 将匿名函数赋值给变量
func main() {
f:= func(name string) {
fmt.Println("hello "+name)
}
f("sixinshuier")
}
3. 匿名函数用作回调函数
package main import (
"fmt"
"math"
) func main() {
arr := []float64{1,4,36,30}
// 求平方
visit(arr, func(v float64) {
v = math.Pow(v,2)
fmt.Printf("%.2f \n",v)
})
//求平方跟
visit(arr,func(v float64){
v =math.Sqrt(v)
fmt.Printf("%0.0f \n",v)
})
} func visit(list []float64, f func(float64)){
for _,value := range list{
f(value)
}
}
最新文章
- 立flag
- iOS 利用webView加载html代码,在代理中获取html页面的链接时出现的问题
- Posterior visual bounds retrieval for the Plato framework
- git 临时记录
- 采用formdata做跨域的、无刷新、带进度条的文件上传
- kenrnel 驱动中常用的宏
- 【OpenGL】查看显卡对OpenGL的支持程度
- css技术和实例
- php.ini的配置
- mysql手工注入
- mysql 支持emoji
- pc端有弹出层 并有滚动的时候遇到的问题以及解决
- HTTP - 基本认证
- Lua开发环境配置
- ABP领域层——领域事件(Domain events)
- 10.TCP连接的建立与终止
- 前端HTML介绍
- canvas练手项目(二)——各种操作基础
- spring官网上下载历史版本的spring插件,springsource-tool-suite
- 【Alpha】Scrum Meeting 3
热门文章
- 创建一个springboot项目
- dev 控件获得所有的EFDEVGRID
- HarmonyOS三方件开发指南(12)——cropper图片裁剪
- Mysql训练:两个表中使用 Select 语句会导致产生 笛卡尔乘积 ,两个表的前后顺序决定查询之后的表顺序
- Dyno-queues 分布式延迟队列 之 辅助功能
- 授权认证登录之 Cookie、Session、Token、JWT 详解
- 华硕主板开机无法进入BIOS
- Java 常用类——StringBuffer&;StringBuilder【可变字符序列】
- Django的路由控制
- 通过unity Distribution Portal发布华为渠道的游戏