понедельник, 25 мая 2020 г.

Время не число в Golang

Почему не компилируется?

n := 100
time.Sleep(n * time.Millisecond)

invalid operation: n * time.Millisecond (mismatched types int and time.Duration)

Ответ

В Go нет смешивания числовых типов. Вы можете умножить time.Duration только на

  • другой time.Duration или
  • нетипизированную целочисленную константу.

Вот три правильных примера.

var n time.Duration = 100
time.Sleep(n * time.Millisecond)

const n = 100
time.Sleep(n * time.Millisecond)

time.Sleep(100 * time.Millisecond)

Смотрите нетипизированные числовые константы без ограничений для деталей о типизированных и нетипизированных целочисленных и константах с плавающей запятой и их пределах.


Читайте также:


Комментариев нет:

Отправить комментарий