„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum ist Go's Time.sleep () `Bühne basierend auf konstantem Typ fraktionelle Dauer?

Warum ist Go's Time.sleep () `Bühne basierend auf konstantem Typ fraktionelle Dauer?

Gepostet am 2025-03-23
Durchsuche:614

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

Bruch der Zeitschlafdauer in go

Frage:

Warum schläft der folgende Go -Code erfolgreich für eine Bruchdauer, während der zweite? S: = Zeit.bour / 73.0 fmt.println ("schlaf:", s) time.sleep (s) // Versagen D: = 73,0 S: = Zeit.bour / d fmt.println ("schlaf:", s) time.sleep (s) // Fehler: Ungültige Operation: Time.Hour / D (nicht übereinstimmende Typen Time.duration und 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)
Antwort:

Der Unterschied liegt in der Art der Teilung in jeder Zeile:

oder eine der folgenden alternativen Wege verwenden:
  • d: = time.duration (73.0)
  • var d time float64:
  • d: = 73.5 s: = time.duration (float64 (time.hour) / d)
Weitere Überlegungen:

// 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)

konstanten:

konstanten wie time Typen.
  • untyped Constants:
  • untyped Constants nehmen den Typ des Kontextes an, in dem sie verwendet werden. In der ersten Zeile passt 73.0 an die Zeit an. Typen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3