Avatar ·

كيفية ضرب المدة (time.Duration) في عدد صحيح في Go؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Go وواجهت مشكلة أثناء العمل مع حزمة time. أحتاج إلى إنشاء مؤقت يعمل كل N ثانية، حيث يتم تحديد N من قبل المستخدم كعدد صحيح.

package main

import (
    "fmt"
    "time"
)

func main() {
    var n int
    fmt.Print("أدخل الفاصل الزمني بالثواني: ")
    fmt.Scan(&n)
    
    // أحاول ضرب المدة
    interval := time.Second * n  // خطأ!
    fmt.Println(interval)
}

يُصدر المترجم خطأ: invalid operation: time.Second * n (mismatched types time.Duration and int). أفهم أن time.Second هو من نوع time.Duration، و n هو من نوع int، ولا يمكن ضربهما ببساطة. لكن كيف يمكنني إنشاء فاصل زمني مضاعف للثانية بشكل صحيح؟ في لغات أخرى، مثل Python، كنت أكتب datetime.timedelta(seconds=n) وكان كل شيء يعمل. هل هناك شيء أفتقده في Go؟

أنا