[英]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(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.