Golang time.After() 函数及示例

Golang time.After() 函数及示例

Go 语言中,时间包提供确定时间和观察时间的功能。 After() 函数用于等待一段时间,然后在返回的通道中传递实际时间。此外,这个函数是在 time 包 中定义的。你需要导入 “time” 包以使用这些函数。

语法:

func After(d Duration) <-chan Time

这里,d 是超时前的时间间隔,chan 是返回当前时间的通道。

返回值:它首先等待指定的时间,然后显示超时。

示例 1:

// 示范使用 After() 函数的 Golang 程序
  
// 包含主包
package main
  
// 导入 fmt 和 time
import (
    "fmt"
    "time"
)
  
// 创建一个通道
// 使用 var 关键字
var ch chan int
  
// 主函数
func main() {
  
    // For 循环
    for i := 1; i < 6; i++ {
  
        // 输出信息直到循环停止
        fmt.Println("****Welcome to GeeksforGeeks***")
        fmt.Println("A CS-Portal!")
    }
  
    // Select 语句
    select {
  
    // 使用 case 语句在通道上接收或发送操作,并在其上调用 After() 方法
    case <-time.After(3 * time.Second):
  
        // 超时后打印信息
        fmt.Println("Time Out!")
    }
} 

输出:

****Welcome to GeeksforGeeks***
A CS-Portal!
****Welcome to GeeksforGeeks***
A CS-Portal!
****Welcome to GeeksforGeeks***
A CS-Portal!
****Welcome to GeeksforGeeks***
A CS-Portal!
****Welcome to GeeksforGeeks***
A CS-Portal!
Time Out!    // 以上代码中规定了 3 秒后超时并显示此内容

在上面的示例中,我们在 select 语句下使用了 “case” 语句,在通道上发送操作。此外,这里的超时将在 for 循环执行后的 3 秒显示。

示例 2:

// 示范使用 After() 函数的 Golang 程序
  
// 包含主包
package main
  
// 导入 fmt 和 time
import (
    "fmt"
    "time"
)
  
// 主函数
func main() {
  
    // 创建一个通道
    // 使用 make 关键字
    channel := make(chan string, 2)
  
    // Select 语句
    select {
  
    // 使用 case 语句在通道上接收或发送操作
    case output := <-channel:
        fmt.Println(output)
  
    // 在通道上调用 After() 方法
    case <-time.After(5 * time.Second):
  
        // 5 秒后打印信息
        fmt.Println("Its timeout..")
    }
} 

输出:

Its timeout..

这里,我们使用 “make” 关键字创建一个通道,然后像上面的示例那样,使用 select 语句下的 case 语句两次。第一个用于返回输出,第二个用于在通道上调用 After() 方法。之后,超时在预定时间内显示。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程