"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que o `time.sleep ()` manipulam durações fracionárias de maneira diferente com base no tipo constante?

Por que o `time.sleep ()` manipulam durações fracionárias de maneira diferente com base no tipo constante?

Postado em 2025-03-23
Navegar:837

Why Does Go's `time.Sleep()` Handle Fractional Durations Differently Based on Constant Type?

fração da duração do sono no tempo em go

Pergunta:

Por que o seguinte vá com o código de código em suma para uma divisão fracionária, enquanto o segundo falha? s: = time.hour / 73.0 fmt.println ("Sleeping:", s) time.sleep (s) // Falha D: = 73.0 s: = time.hour / d fmt.println ("Sleeping:", s) time.sleep (s) Erro: operação inválida: time.hour / d (tipos incompatíveis time.duration e float64)

// Success
s := time.Hour / 73.0
fmt.Println("sleeping: ", s)
time.Sleep(s)

// Failure
d := 73.0
s := time.Hour / d
fmt.Println("sleeping: ", s)
time.Sleep(s)

// Error: invalid operation: time.Hour / d (mismatched types time.Duration and float64)
resposta:

a diferença está no tipo do divisor em cada linha:

constante, que se adapta ao tempo. time.hour / time.duration (d)

    ou use uma das seguintes maneiras alternativas:
  • d: = time.duration (73.0)
  • var time.duration = 73.0
  • Deve ser convertido em float64:

d: = 73.5 s: = time.duration (float64 (time.hour) / d)

// Success
s := time.Hour / 73.0
fmt.Println("sleeping: ", s)
time.Sleep(s)

// Failure
d := 73.0
s := time.Hour / d
fmt.Println("sleeping: ", s)
time.Sleep(s)

// Error: invalid operation: time.Hour / d (mismatched types time.Duration and float64)
considerações adicionais:

  • constantes:
  • constantes como o tempo. TIPOS. Types.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3