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
则它符合....有人可以解释这种行为吗?
解决方案
推荐阅读
- r - 根据多个条件对数据框进行排名
- python - Os.PathLike 对象 - 处理通过 curl 发送的文件
- angular - ngAfterViewInit 中未定义的 Angular viewchild
- java - 如果String为空,如何设置空值?
- python - 在 dockerfile 中将目录从主机复制到 docker 容器从 mac 到 docker linux 时出现意外行为
- d3.js - 删除边缘的箭头
- zurb-foundation - 基础框架中柱间距如何调整?
- javascript - 解析和格式化字符串中的日期
- powershell - 在 PowerShell v2.0 中将文件压缩为 .ZIP
- apache-nifi - 惩罚流文件导致后续处理器累积任务/时间