簡體   English   中英

將長字符串轉換為int64-Go

[英]Cast long string to int64 - Go

我正在尋找在Go中將長字符串格式的整數轉換為int64的方法。 我使用了strconv.Atoi,但是它給我一個錯誤,提示“值超出范圍”。 我搜索了找到的答案

ParseInt(s string, base int, bitSize int) (i int64, err error)

在strconv包中。 但是,我不明白應該為函數參數(包括base和bitSize)提供什么值。

我正在嘗試將從HTTP請求收到的字符串格式的datastore.Key.IntID()解析回int64,以創建新的密鑰以對數據存儲區執行查詢。

誰能向我解釋一下base和bitSize參數,在這種情況下我應該在參數中提供什么值?

func ParseInt

 func ParseInt(s string, base int, bitSize int) (i int64, err error) 

ParseInt解釋給定基數(2到36)中的字符串s並返回相應的值i。 如果base == 0,則字符串的前綴隱含基數:“ 0x”的基數為16,“ 0”的基數為8,否則為10。

bitSize參數指定結果必須適合的整數類型。 位大小0、8、16、32和64對應於int,int8,int16,int32和int64。

ParseInt返回的錯誤的具體類型為* NumError,其中包括err.Num = s。 如果s為空或包含無效數字,則err.Err = ErrSyntax; 如果與s對應的值不能用給定大小的有符號整數表示,則err.Err = ErrRange。

例如,

package main

import (
    "fmt"
    "strconv"
)

func main() {
    s := "9223372036854775807"
    i, err := strconv.ParseInt(s, 10, 64)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(i)
}

輸出:

9223372036854775807

暫無
暫無

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

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