匿名函数
匿名函数就是没有函数名的函数,匿名函数的定义格式如下:
1 | func(参数)(返回值){ |
- 没有函数名,无法进行调用
- 匿名函数需要保存到某个函数或者立即执行,即:函数体后面直接加上
()
,如果有参数带上参数 - 多用于实现回调函数和闭包
1 | func main() { |
闭包
闭包指的是一个函数和与其相关的引用环境组合而成的实体。简单来说,闭包=函数+外层变量的引用环境
1 | package main |
1 | package main |
文件名判断
1 | package main |
1 | package main |
内置函数
内置函数 | 介绍 |
---|---|
close | 主要用来关闭channel |
len | 用来求长度,比如string、array、slice、map、channel |
new | 用来分配内存,主要用来分配值类型,比如int 、struct 。返回的是指针 |
make | 用来分配内存,主要用来分配引用类型,比如chan、map、slice |
append | 用来追加元素到数组、slice 中 |
panic和recover | 用来做错误处理 |
发生panic通过recover来处理
1 | package main |
defer
语句一定要在panic
之前panic
和recover
要联合使用
练习题
1 | package main |
- 先遍历
users
数组,取出其中的每个user
- 通过
for range
遍历出user
中的每个字母,通过string
函数转换成字符类型,再和字母进行比较 map
类型的distribution
初始化为0;比较完毕,对distribution
中的每个value
值进行增加操作- 得到
distribution
:键为单个user
,值为增加的数值 - 通过
for range
循环遍历distribution
中的每个value
,所有的value
相加赋值给sum
- 得到
left = coins - sum