«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему go `time.sleep ()` обрабатывает дробные продолжительности по -разному в зависимости от постоянного типа?

Почему go `time.sleep ()` обрабатывает дробные продолжительности по -разному в зависимости от постоянного типа?

Опубликовано в 2025-03-23
Просматривать:240

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

дробь времени сна в go

Вопрос:

] почему следующий код S: = время. Черт / 73,0 fmt.println ("Sleep:", s) время. // Отказ D: = 73,0 S: = время. fmt.println ("Sleep:", s) время. // Ошибка: недействительная операция: time.hour / d (несоответствующие типы Time.duration и 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)
ответ:

неудача:

d явно напечатано как float64, который не может быть разделен на время. time.duration (d)
  • или использовать один из следующих альтернативных способов: ]
  • d: = time.duration (73.0)
  • var d Time.duration = 73.0
для значений, которые не могут быть представлены. 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)

дальнейшие соображения:

  • Константы:
  • , как время. Types.

]

untyped Constants:
d := 73.5
s := time.Duration(float64(time.Hour) / d)

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3