我是 Go 新手,幾天前我剛剛開始學習它的并發性:-)。我有一個不同的庫,它返回 time.Duration 類型,其中包含 Seconds,這是一個我想使用并存儲在數據庫中的 float64 精度值。以下是與我想要實現的目標相關的點點滴滴:type pResp struct { address string rtt time.Duration sent int recv int}stmt, err := db.Prepare("insert pings set domain = ?, packet_rtt = ?, packets_sent = ?, packets_recv = ?")res, err := stmt.Exec(r.address, r.rtt.Seconds, r.sent, r.recv)這是我得到的錯誤:2019/08/26 19:57:35 sql: converting argument $2 type: unsupported type func() float64, a funcProcess exiting with code: 0MySQL 中的列設置為 double,應該是 64 位...我不確定這里哪里出了問題。這是我正在使用的庫的限制嗎?謝謝。
1 回答

月關寶盒
TA貢獻1772條經驗 獲得超5個贊
看來您傳遞的是一流函數func() float64
而不是實際的 float64 原語。該函數的源代碼看起來是r.rtt.Seconds
,應該作為 來調用r.rtt.Seconds()
。
- 1 回答
- 0 關注
- 99 瀏覽
添加回答
舉報
0/150
提交
取消