函数可以作为变量的值
函数可以作为参数和返回值
切片背后对应一个数组,切片本身是一个数据结构,数据结构本身包含了对应数据的指针,所以说即使是在传值被复制的情况下,通过指向数组的指针操作具体的值时,其实操作的是同一块空间,所以就会有一种传引用的错觉。实际上是结构被复制了,但包含的指针依然指向的是同一个后端的数组
package func_test
import (
"math/rand"
"testing"
)
func returnMultiValues() (int, int) {
return rand.Intn(10), rand.Intn(20)
}
func TestMultiValues(t *testing.T) {
a, b := returnMultiValues()
t.Log(a, b)
a, _ := returnMultiValues() // 小技巧:可以用_忽略其中的返回值
t.Log(a)
}
函数编程:计算运行函数的时间