1. 程式人生 > >go利用defer計算函式執行時間

go利用defer計算函式執行時間

package main

import (
    "time"
    "fmt"
)

func a() int {
    defer b(time.Now()) // 這裡不會呼叫b(), 但是會將當前時間t賦值給b的傳入引數
    time.Sleep(1 * time.Second)
    // 其實也不是在這裡呼叫的 return 0 其實是兩個語句 1.返回值賦值為0;2.return
    // 在return之前呼叫b()
    return 0
}

func b(t time.Time) {
    fmt.Println(time.Since(t).Nanoseconds() / (1000
* 1000)) } func main() { a() }

主要是對defer 後面函式呼叫的理解,回將引數先傳入,然後在return之前呼叫defer後面的函式