簡體   English   中英

單值上下文中的多值strconv.ParseInt()

[英]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個值:整數和錯誤。 所以你不能在函數參數中使用它們,只允許一個值。 您可能首先獲得valueerror然后在下一個操作中使用value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM