【Go语言核心编程】知识点记录——第二章函数

1.GO函数作为“第一公民”的表现:

a. 函数是一种类型,函数类型变量可以像其他类型变量一样使用,可以作为其他函数的参数或者返回值,也可以直接调用执行;
b. 函数支持多值返还;
c. 支持闭包;
d. 函数支持可变参数;

2.函数名遵守标识符的命名规则,首字母的大小写决定该函数在其他包的可见性:大写时其他包可见,小写时只有相同的包可以访问。

3.函数的特点

a. 函数可以没有输入参数,也可以没有返回值
b. 多个相邻的相同类型的参数可以使用简写模式
c. 支持有名的返回值,参数名就相当于函数体内最外层的局部变量,命名返回值变量会被初始化为类型零值
d. 不支持默认值参数
e. 不支持函数重载
f. 不支持命名函数的嵌套定义

4.实参到形参的传递

Go函数实参到形参的传递永远是值拷贝,有时函数调用后实参指向的值发生了变化,那是因为参数传递的是指针值的拷贝,实参是一个指针变量,传递给形参的是这个指针变量的副本,二者指向同一地址,本质上参数传递仍然是值拷贝。

5.不定参数的特点

a.所有的不定参数类型必须是相同的;
b. 不定参数必须是函数的最后一个参数;
c. 不定参数名在函数体内相当于切片,对切片的操作同样适合对不定参数的操作;
d.切片可以作为参数传递给不定参数,但切片名后要加上“…”;
e.形参为不定参数的函数和形参为切片的函数类型不相同;

6. defer可以注册多个延迟调用,这些调用以先进后出(FILO)的顺序在函数返回前被执行,但主动调用os.Exit(int)退出进程时,defer将不再被执行(即使defer已经提前注册)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值