0
나는 코드 반복을 허용하지 않습니다. 그러나 나는 실행 시간을 측정하고자하는 모든 기능에서 반복해야하는 상황이 있으며 아무 것도 할 수 없습니다. 예를 들어, 함수 : 골란 코드 삽입/대체
func someFunc() {
start_time := time.Now()
defer fmt.Println("Execution time: %v", time.Now().Sub(start_time))
<... doing some bussiness ...>
}
는 지금은 모든 기능이이 첫 번째 스트로크를 반복해야합니다 (원래 그들은 때문에 함수 이름을 호출하는 더 복잡합니다). 그래서 시간을 측정하는 기능을 만들 수 없습니다. 왜냐하면 시간을 측정하는 기능을 사용해야하기 때문입니다. 두 번째 스트로크에도 함수를 만들 수는 없으므로 원본에서 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()에서 이름이없는 함수입니다. –