* time.Duration 不是?,go"/>

首页 > 解决方案 > 为什么 int * time.Duration 有效但* time.Duration 不是?

问题描述

这个片段

package main

import (
    "fmt"
    "time"
)

func main() {
    var x = 2
    fmt.Println(5 * time.Hour)
    fmt.Println(2 * 5 * time.Hour)
    fmt.Println(x * 5 * time.Hour)
}

./prog.go:12:20: invalid operation: x * 5 * time.Hour (mismatched types int and time.Duration)会因为 x 是 int .... 而出错,这是超级奇怪的吗?

但是,如果您改用它,const x = 2则它符合....有人可以解释这种行为吗?

标签: go

解决方案


推荐阅读