4.1 go 函数 摘自《go语言学习笔记》

1,定义:代码复用和测试的基本单元。

2,关键字func用于定义函数。

3,函数优点

  1. 无需前置声明
  2. 不支持命名嵌套定义
  3. 不支持同名函数重载
  4. 不支持默认参数
  5. 支持不定长变参
  6. 支持多返回值
  7. 支持命名返回值
  8. 支持匿名函数和闭包

4,函数属于第一类对象,具有相同签名(参数及返回值列表)的视作同一类型,第一类对象定义:指可在运行期间创建,可用作函数参数或返回值,可存入变量的实体。最常见的用法就是匿名函数。

package main 

func hello(){
	fmt.Println("hello world")
}

func exec(f func()){
	f()
}
func main(){
	f := hello
	exec(f)
}

5,函数只能判断其是否为nil,不支持其它比较操作

package main

func a(){}
func b(){}

func main(){
	fmt.Println(a==nil)
	fmt.Println(a == b ) //error
}

6,从函数返回局部变量指针是安全的,编译器会通过逃逸分析(escape analysis)来决定是否在堆上分配内存

package main

import "fmt"

func test() *int {
	a := 0x100
	return &a
}

func main(){
	var a *int = test()
	fmt.Println(a,*a)
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值