time.After()返回一个频道。在指定的持续时间后,将在通道上发送一个值。
因此,只需从返回的通道接收一个值,接收就会阻塞,直到发送该值为止:
func Sleep(x int) { <-time.After(time.Second * time.Duration(x))}您的错误:
在第一个示例中:
msg := <- time.After(time.Second * x)
msg已经声明,因此不能使用Short变量声明
:=。接收到的值也将是类型
time.Time,因此您甚至无法将其分配给
msg。
在第二个示例中,您需要一个类型转换,
x它是type
int和
time.Secondtype
time.Duration,并且
time.After()需要type的值
time.Duration。



