go 速学 - 09 - 函数
来源:互联网 发布:淘宝导航条代码 编辑:程序博客网 时间:2024/05/17 22:57
目录
- 函数
- 特点
- 定义函数
- 变参
- 闭包与柯理化
- 闭包
- 柯理化
- 函数
摘要
定义函数,多个返回值,命名返回值,变参,闭包,柯理化
函数
特点
- 不支持嵌套,重载和默认参数
- 支持闭包
定义函数
//单个返回值,可以省略括号func test0(a int, b string) int { return a}//多个返回值func test1(a int, b string) (int, string) { return a, b}//无返回值func test2(a int, b string) {}//参数简写func test3(a, b int) {}
可以对返回值进行命名,这样 return 的时候就不用一一指定了
//命名返回值func test4() (a, b, c int) { a, b, c = 1, 2, 3 return //或 //return a,b,c}
变参
func args(a ...int) { for i, v := range a { fmt.Println(i, v) }}
闭包与柯理化
闭包
func closure(s []func()) { for i := 0; i < 5; i++ { s[i] = func() { fmt.Println(i) } }}s := make([]func(), 5)closure(s)for i, v := range s { fmt.Print(i, ",") v()}//0,5//1,5//2,5//3,5//4,5
柯理化
func curry(x int) func(int) int { return func(y int) int { return x + y }}adder := curry(2)fmt.Println(adder, adder(3)) //0x2950 5
0 0
- go 速学 - 09 - 函数
- go 速学 - 06 - 数组
- go 速学 - 07 - Slice
- go 速学 - 08 - Map
- go 速学 - 11 - 结构
- go 速学 - 12 - 方法
- go 速学 - 13 - Interface
- go 速学 - 14 - 反射
- go 速学 - 15 - 并发
- go 速学 - 01 - 安装与运行
- go 速学 - 03 - 类型与变量
- go 速学 - 05 - 流程控制
- go 速学 - 16 - 项目结构
- go - 函数
- Go 函数
- go 函数
- GO 函数
- Go 函数
- 第三章 Oracle数据库管理工具
- 将Matlab中的数据输出到指定的txt文本文件中
- [Egret学习笔记 二]MovieClip的使用
- POJ 题目2312 Battle City(BFS)
- vim 搜索替换
- go 速学 - 09 - 函数
- 正则表达式使用记录
- java排序之插入排序(三)
- hdu 4217 Data Structure?/SBT
- 《metasploit渗透测试魔鬼训练营》靶机演练之第五章实战案例KingView 6.53版本CVE-2011-0406漏洞
- p51第14题
- Android 自定义UI圆角按钮
- c语言 成长
- LANPORA-蓝铂尔面膜全国代理