我在网络包中看到了很多d.deadline(time.Now())。从名称来看,我猜它现在只设置截止日期,这对网络通信毫无意义。那么golang的目的截止日期(time.Now())是什么?
答案 0 :(得分:5)
这是您所指的功能(net
包,文件dial.go)。因此,它返回截止日期设置和连接的超时设置之间的第一个截止日期。
67 // Return either now+Timeout or Deadline, whichever comes first.
68 // Or zero, if neither is set.
69 func (d *Dialer) deadline(now time.Time) time.Time {
70 if d.Timeout == 0 {
71 return d.Deadline
72 }
73 timeoutDeadline := now.Add(d.Timeout)
74 if d.Deadline.IsZero() || timeoutDeadline.Before(d.Deadline) {
75 return timeoutDeadline
76 } else {
77 return d.Deadline
78 }
79 }