解决Go语言time包数字与时间相乘的问题
作者:西京刀客 发布时间:2023-08-06 17:07:55
标签:Go,time包,数字与时间相乘
背景说明:
10 * time.Second //正常数字相乘没错
但是
package main
import "time"
func main(){
connectTimeout := 10
time.Sleep(time.Second*connectTimeout)
}
这样使用会报错
int and time.Duration are different types. You need to convert the int to a time.Duration
原因分析:
原因:因为类型不匹配,time.Duration类型 不能直接和 int类型相乘,需要先将变量转换为time.Duration
解决方式:time.Duration(int变量))
解决方法:
要将整数个单位转换为持续时间
seconds := 10
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(seconds) * time.Second)
//ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// Common durations. There is no definition for units of Day or larger
// to avoid confusion across daylight savings time zone transitions.
//
// To count the number of units in a Duration, divide:
//second := time.Second
//fmt.Print(int64(second/time.Millisecond)) // prints 1000
//
// To convert an integer number of units to a Duration, multiply:
//seconds := 10
//fmt.Print(time.Duration(seconds)*time.Second) // prints 10s
参考
Golang:如何将int转换为time.duration?
参考URL: https://ask.csdn.net/questions/1037457
golang time.Duration 自定义变量报错解决
参考文末介绍。
下面看下:golang time.Duration 自定义变量报错解决
对于time.Duration类型,如果采用 time.Duration类型 * int变量 会报错,而直接和数字相乘则不会出现;
具体是为什么呢?怎么解决呢?
错误:Invalid operation: time.Millisecond * idcTimeOut (mismatched types Duration and int64)
原因:因为类型不匹配,time.Duration类型 不能直接和 int类型相乘,需要先将变量转换为time.Duration
解决方式:time.Duration(int变量))
代码如下:
idc := getIdc()
var idcTimeOut int64
if _, ok := IdcTimeout[idc]; ok {
idcTimeOut = IdcTimeout[idc]
} else {
idcTimeOut = AllTimeout
}
//错误写法
time.After(time.Millisecond * idcTimeOut
//正确写法
time.After(time.Millisecond * time.Duration(idcTimeOut))
来源:https://blog.csdn.net/inthat/article/details/123895596


猜你喜欢
- 目录输出算法操作封装的操作含时演化算符的分解QFT的分解总结概要输出算法操作首先介绍一个最基本的使用方法,就是使用ProjectQ来打印量子
- 我所希望的iframe功能是不要去控制父页面,如果他想要控制,哪从父页面里面加入什么代码能让他无法控制呢?假如iframe里面有这样的语句:
- 来一个简单的例子,看Python如何操作数据库,相比Java的JDBC来说,确实非常简单,省去了很多复杂的重复工作,只关心数据的获取与操作。
- 前言:NoxfileNox 默认在一个名为noxfile.py的文件中查找配置。在运行 nox 时,你可以使用 --noxfile参数指定其
- 情境问题小王是一名法务专员,工作中会处理所在公司的侵权事件并向侵权方发送法务函。他会按照【法务函模板.docx】 Word 文件给【封号名单
- 一、安装apt-get install mysql-server 需要设置账号密码apt-get isntall mysql-clienta
- 废话真的一句也不想多说,直接看代码吧!# -*- coding: utf-8 -*- import numpy from sklearn i
- os 包 和 bufio 包Go 标准库的 os 包,为我们提供很多操作文件的函数,如 Open(name) 打开文件、Create(nam
- 我经常使用json进行存储配置,于是常常遇到这样的问题:如果想要对某个数组里的值进行模糊搜索,同时输出相关的其他数组相同位置的的值该如何实现
- 首先以只读方式打开单词文件,利用列表推导式创建两个列表列表sta记录各单词出现的次数,列表freq记录各单词出现的频率f = open(
- 在flask中可以像go和angular那样使用页面模版(template),可以将HTML页面显示进行模版化,通过参数传递与页面进行数据交
- 协程的特点1.该任务的业务代码主动要求切换,即主动让出执行权限2.发生了IO,导致执行阻塞(使用channel让协程阻塞)与线程本质的不同C
- 一、排序排序查询语法:select * from 表名 order by 列1 asc/desc [,列2 asc/desc,..
- 当我们在Vue.js项目中引用图片时,关于图片路径有以下几种情形:使用一我们在data里面定义好图片路径imgUrl:'../ass
- mysql select into给多个字段变量赋值在into之后顺序写上要赋值的变量就行SELECT
- mysql之alter表的SQL语句集合,包括增加、修改、删除字段,重命名表,添加、删除主键等。1:删除列ALTER TABLE 【表名字】
- HDF5 简介HDF(Hierarchical Data Format)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件。HDF
- 本文实例讲述了python实现的简单窗口倒计时界面。分享给大家供大家参考。具体分析如下:下面的代码通过Tkinter制作windows窗口界
- Django配置文件settings简单说明,包含时区语言等打开创建好的django工程,查看settings.py文件BASE_DIR =
- 例如: 修改(列名前 要有column关键字) ALTER TABLE [USER] ALTER&n