私はコードの繰り返しを許可したくありません。しかし、私は実行時間を測定したいすべての機能でそれを繰り返す必要がある状況があり、何もできません。例えば 、機能:golangコードの挿入/置き換え
func someFunc() {
start_time := time.Now()
defer fmt.Println("Execution time: %v", time.Now().Sub(start_time))
<... doing some bussiness ...>
}
今、私はすべての機能で、この二つの第一のストロークを繰り返す必要があります(と元に、彼らがために、関数の名前を呼んで、より複雑です)。だから私は時間を測定する関数を作ることができません。なぜなら、私はそれの内部で遅延を使わなければならないからです。私は第2ストロークでも関数を作ることができません。なぜなら、オリジナルではPrintlnの関数名を呼び出すため、その結果の名前は必要な機能にならないからです。
func someFunc() {
//go-insert measuretime.tmpl
<... doing some bussiness ...>
}
そしてmeasuretime.tmplです:
start_time := time.Now()
defer fmt.Println("Execution time: %v", time.Now().Sub(start_time))
よろしくお願いします。私が欲しいのとまったく同じではないが、それでも。そして、私はコードの挿入に興味がありますが、内部関数呼び出しを避けるためです。この場合、return func()では無名関数になります。 –