Я читаю код, который имеет пакет time
, а затем я хочу знать, как работает func After(d Duration) <-chan Time
.
Я нашел код:
func After(d Duration) <-chan Time {
return NewTimer(d).C
}
func NewTimer(d Duration) *Timer {
c := make(chan Time, 1)
t := &Timer{
C: c,
r: runtimeTimer{
when: nano() + int64(d),
f: sendTime,
arg: c,
},
}
startTimer(&t.r)
return t
}
Итак, я нашел определение startTimer
- настолько странно, что функция startTimer
не имеет тела функции.
func startTimer(*runtimeTimer)
Я хочу знать, что:
- Где настоящий код
startTimer
- Почему здесь существует "абстрактный метод".
- Почему автор Go написал это так:
Спасибо!