كيفية ضرب duration (المدة) في عدد صحيح في Go؟
مرحبًا بالجميع! لقد بدأت مؤخرًا في تعلم Go وواجهت مشكلة في التعامل مع الفواصل الزمنية. أحتاج إلى تنفيذ إجراء متكرر مع تأخير يزيد عدة مرات. على سبيل المثال، أريد التوقف لمدة ثانية واحدة، ثم ثانيتين، ثم ثلاث ثوانٍ وهكذا.
لقد كتبت هذا الكود:
```go
package main
import (
"fmt"
"time"
)
func main() {
baseDelay := 1 * time.Second
multiplier := 3
totalDelay := baseDelay * multiplier // خطأ!
fmt.Println("Total delay:", totalDelay)
}
```
لكن المترجم يعطي خطأ: `invalid operation: baseDelay * multiplier (mismatched types time.Duration and int)`. أفهم أن الأنواع مختلفة، لكن كيف يمكنني ضرب المدة بعدد صحيح بشكل صحيح؟ في لغات أخرى (مثل Python)، يعمل هذا مباشرة. حاولت تحويل الأنواع بوضوح، لكن لم ينجح الأمر.
أرشدوني، كيف يمكنني ضرب المدة بعدد صحيح في Go بشكل صحيح؟ ولماذا هذه العملية ممنوعة أساسًا؟ شكرًا مقدمًا!