为了账号安全,请及时绑定邮箱和手机立即绑定

戈朗的后退箭头“<-”是什么?

戈朗的后退箭头“<-”是什么?

Go
慕桂英4014372 2022-09-12 21:01:31
我在一小段代码中使用它来工作,没有它,程序就会继续下一行,而无需等待计时器完成。time.After()下面是一个示例:package mainimport (    "fmt"    "time")func main() {    a := 1    fmt.Println("Starting")    <-time.After(time.Second * 2)    fmt.Println("Printed after 2 seconds")}
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

运算符用于等待通道的响应。在此代码中,它用于等待 将在 X 时间后馈送的通道。<-time.After


您可以了解有关Go之旅中@Marc提到的频道的更多信息。请注意,如果您不处理多个通道结果(使用 as ),则可以将其替换为同步语句。<-time.After(time.Second * 2)time.Sleep(time.Second * 2)select


通常用于将涉及一个或多个通道的异步操作的结果超时,如下所示:time.After


func doLongCalculations() (int, error) {

    resultchan := make(chan int)

    defer close(resultchan)


    go calculateSomething(resultchan)


    select {

    case <-time.After(time.Second * 2):

        return nil, fmt.Errorf("operation timed out")

    case result := <-resultchan

        return result, nil

    }

}

同样,我们强烈建议您参加Go之旅,以了解Go的基本:)


查看完整回答
反对 回复 2022-09-12
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信