golang的目的截止日期(time.Now())是什么?

时间:2016-05-31 05:52:22

标签: go

我在网络包中看到了很多d.deadline(time.Now())。从名称来看,我猜它现在只设置截止日期,这对网络通信毫无意义。那么golang的目的截止日期(time.Now())是什么?

1 个答案:

答案 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  }