美文网首页
3 - 函数

3 - 函数

作者: 天命_风流 | 来源:发表于2020-07-02 13:19 被阅读0次
  • 函数可以返回多个返回值
  • 函数的值都是值传递
package fn

import (
    "math/rand"
    "testing"
)

func returnMultValues() (int, int){
    return rand.Intn(10), rand.Intn(20)
}

func TestFn(t *testing.T){
    a, b := returnMultValues()
    t.Log(a, b)
}
  • 函数可以作为变量的值
  • 函数可以作为参数和返回值
  • 通过上面的这个性质,你可以构造一个类似 Python 中装饰器的东西
func timeSpent(inner func(op int) int) func(op int) int{
    return func(n int) int {
        start := time.Now()
        ret := inner(n)
        fmt.Println("time spent:", time.Since(start).Seconds())
        return ret
    }
}

func slowFun(op int) int{
    time.Sleep(time.Second * 1)
    return op
}

func TestTimeSpent(t *testing.T){
    tsSlowFun := timeSpent(slowFun)
    t.Log(tsSlowFun(666))
}
  • 函数的参数长度是可变的,使用 ...
func Sum(ops ...int) int{
    fmt.Println(reflect.TypeOf(ops))  // []int
    sum := 0
    for _, op := range ops{
        sum += op
    }
    return sum
}

func TestVar(t *testing.T){
    t.Log(Sum(1,2,3))
    t.Log(Sum(1,2,3,4,5))
}
  • 延迟函数:在函数执行结束之后执行的函数,相当于 finally
  • 延迟函数可以和 recover 进行错误恢复
  • 延迟函数可以做资源释放
func Clear(){
    fmt.Println("Clear resources.")
}

func TestDefer(t *testing.T){
    defer Clear()
    fmt.Println("Start")
    panic("Error")
}

// Start -> Clear resources. -> panic: Error

相关文章

  • python3 range() 函数和 xrange() 函数

    python3 range 函数 python3 取消了 xrange() 函数,并且和 range() 函数合并...

  • 07 C函数

    1、why函数? 2、函数进阶 3、递归函数

  • python3函数(一)

    python3中可以调用函数和定义函数。 1、调用函数 直接调用python3自带的函数 (1)函数abs(-10...

  • python中删除列表中重复元素

    1使用内置函数 2 unique函数 3 del函数

  • Python_9_函数定义-位置参数-返回值

    1. 函数介绍1.1. 为什么要使用函数1.2. Python 中的函数 2. 函数的基本使用 3. 函数的参数3...

  • 3、函数

    这一期的视频主要内容是Kotlin中的函数我们从这一期开始需要用到源文件,在IDEA中新建一个Kotlin文件的步...

  • 函数3

    1.回调 函数让不连续的事件处理变得容易起来 下面我们来看一个同步的传统的例子 上述的例子是同步发送的,如果服...

  • 3 - 函数

    函数可以返回多个返回值 函数的值都是值传递 函数可以作为变量的值 函数可以作为参数和返回值 通过上面的这个性质,你...

  • ES6入门之函数的扩展

    函数的扩展分为以下3个部分: 1 为函数参数指定默认值2 函数的 rest 参数3 箭头函数 为函数参数指定默认值...

  • Python_8_Python内建函数-迭代器

    1. 内建函数 1 2. 内建函数 2 3. 内建函数 3 4. 内建函数 4 5. 内建函数 5 6. 内建函数...

网友评论

      本文标题:3 - 函数

      本文链接:https://www.haomeiwen.com/subject/bbwlqktx.html