Rumah > Artikel > pembangunan bahagian belakang > Mengapakah `time.Sleep(i * time.Millisaat)` Gagal Disusun dalam Go?
Kekeliruan Masa.Millisaat
Dalam Go, apabila cuba menggunakan fungsi masa.Sleep() dengan masa. Nilai tempoh, ia adalah penting untuk memastikan bahawa nilai yang didarabkan adalah daripada jenis yang sama. Ini digambarkan dalam kod di bawah:
// Compiles successfully time.Sleep(1000 * time.Millisecond)
Di sini, 1000 ialah pemalar yang tidak ditaip, yang ditukar secara automatik kepada masa. Tempoh sebelum melakukan pendaraban.
Walau bagaimanapun, apabila menggunakan int pembolehubah sebaliknya:
var i = 1000 // Compilation error time.Sleep(i * time.Millisecond)
Kod gagal untuk disusun dengan ralat:
invalid operation: i * time.Millisecond (mismatched types int and time.Duration)
Ini kerana pembolehubah i adalah jenis int manakala masa.Millisaat adalah jenis masa. Tempoh. Go memerlukan operan untuk operator binari seperti * daripada jenis yang sama, melainkan operasi melibatkan anjakan atau pemalar yang tidak ditaip.
Untuk menyelesaikannya, anda boleh menukar pembolehubah int kepada masa. Tempoh sebelum pendaraban:
var i = 1000 time.Sleep(time.Duration(i) * time.Millisecond)
Atas ialah kandungan terperinci Mengapakah `time.Sleep(i * time.Millisaat)` Gagal Disusun dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!