[英]multiple-value strconv.ParseInt() in single-value context
我有以下代碼:
var i2 uint64;
var err error;
i2, err = uint64(strconv.ParseInt(scanner.Text(), 64, 64));
我收到了錯誤:
multiple-value strconv.ParseInt() in single-value context
根據我在互聯網上找到的所有內容,這意味着我忽略了ParseInt返回的兩個參數,但我使用的是錯誤的。 我知道也許錯誤是非常愚蠢的,但我剛開始學習Go,這讓我很困惑。
表達式uint64(...)
是一個類型轉換 ,它不能有多個參數(操作數),但由於strconv.ParseInt()
有2個返回值,你基本上都將兩者都傳遞給了類型轉換,這是無效的。
而是這樣做:
i, err := strconv.ParseInt(scanner.Text(), 64, 64)
// Check err
i2 := uint64(i)
請注意,基數不能大於36
,所以當你傳遞64
作為基數時,你肯定會得到一個錯誤。
或者使用strconv.ParseUint()
,它會立即返回一個uint
值:
i, err := strconv.ParseUint(scanner.Text(), 16, 64)
// i is of type uint64, and ready to be used if err is nil
(這里我使用了有效的16
鹼基。使用你需要的任何東西。)
另請參閱相關問題+答案: Go:單值上下文中的多個值
單值上下文中的多值strconv.ParseInt()
ParseInt
返回2個值:整數和錯誤。 所以你不能在函數參數中使用它們,只允許一個值。 您可能首先獲得value
和error
然后在下一個操作中使用value
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.