función time.Tick() en Golang con ejemplos

En el lenguaje Go, los paquetes de tiempo brindan funcionalidad para determinar y ver el tiempo. La función Tick() en el lenguaje Go es un contenedor de utilidades para la función NewTicker . Solo permite el acceso al canal de ticking. Además, Tick es beneficioso para los clientes que no necesitan apagar Ticker. Y el método Tick devuelve cero si la duración indicada es menor o igual a 0. Además, esta función se define en el paquete de tiempo. Aquí, debe importar el paquete «tiempo» para usar estas funciones.

Sintaxis:

func Tick(d Duration) <-chan Time

Aquí, d es la duración del tiempo para que el ticker marque, y chan es el canal de tictac.

Nota: Los teletipos se utilizan para hacer algo con frecuencia a intervalos regulares del tiempo indicado.

Valor de retorno: Devuelve la fecha actual y la hora real después de un intervalo de tiempo regular. Y devuelve cero si d <= 0.

Ejemplo 1:

// Golang program to illustrate the usage of
// Tick() function
  
// Including main package
package main
  
// Importing fmt and time
import (
    "fmt"
    "time"
)
  
// Defining UTCtime
func UTCtime() string {
    return ""
}
  
// Main function
func main() {
  
    // Calling Tick method
    // using range keyword
    for tick := range time.Tick(3 * time.Second) {
  
        // Prints UTC time and date
        fmt.Println(tick, UTCtime())
    }
}

Producción:

2020-04-02 03:16:22.27131713 +0000 UTC m=+3.000249815 
2020-04-02 03:16:25.271334601 +0000 UTC m=+6.000267330 
2020-04-02 03:16:28.271312516 +0000 UTC m=+9.000245191 
2020-04-02 03:16:31.271369788 +0000 UTC m=+12.000302595 
2020-04-02 03:16:34.271309254 +0000 UTC m=+15.000241952 
2020-04-02 03:16:37.271324182 +0000 UTC m=+18.000256858 
2020-04-02 03:16:40.271322789 +0000 UTC m=+21.000255504 
2020-04-02 03:16:43.271295568 +0000 UTC m=+24.000228305......so on

Aquí, hemos usado la palabra clave range para iterar sobre el canal. Aquí, la fecha y la hora actuales se devuelven después de un intervalo de tiempo regular. Entonces, la salida es diferente en diferentes ejecuciones. Y aquí el ciclo no se detiene hasta que lo terminas.

Ejemplo 2:

// Golang program to illustrate the usage of
// Tick() function
// Including main package
package main
  
// Importing fmt and time
import (
    "fmt"
    "time"
)
  
// Defining UTCtime
func UTCtime() string {
    return ""
}
  
// Main function
func main() {
  
    // Calling Tick method using range
    // keyword
    for tick := range time.Tick(-1 * time.Second) {
  
        // Prints UTC time and date
        fmt.Println(tick, UTCtime())
    }
}

Producción:

fatal error: all goroutines are asleep - deadlock!

goroutine 1 [chan receive (nil chan)]:
main.main()
    /home/runner/SociableInsubstantialCommunication/main.go:23 +0x149

Aquí, en el código anterior, la duración indicada es negativa, por lo que se devuelve cero y se produce el error.

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *