網站首頁 編程語言 正文
背景說明:
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
相關推薦
- 2023-01-20 redis數據傾斜處理方法_Redis
- 2022-07-18 SQL?Server使用T-SQL進階之公用表表達式(CTE)_MsSql
- 2022-10-27 Kotlin?Flow封裝類SharedFlow?StateFlow?LiveData使用對比_An
- 2022-12-05 Flutter控制組件顯示和隱藏三種方式詳解_Android
- 2022-07-08 python?讀寫csv文件方式(創建,追加,覆蓋)_python
- 2022-05-04 使用Spring.Net框架實現多數據庫_實用技巧
- 2022-12-01 Linux利用inotify和rsync服務實現數據實時同步的原理解析_Linux
- 2022-09-15 Python利用shutil實現拷貝文件功能_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支