3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
轉(zhuǎn)換簡(jiǎn)單字符串
最簡(jiǎn)單的方法是使用該strconv.Atoi()功能。
請(qǐng)注意,還有許多其他方法。例如fmt.Sscan(),strconv.ParseInt()由于您可以指定基數(shù)和位大小,因此可以提供更大的靈活性。也如以下文檔中所述strconv.Atoi():
Atoi等效于ParseInt(s,10,0),轉(zhuǎn)換為int類(lèi)型。
這是使用上述功能的示例(在Go Playground上嘗試):
flag.Parse()
s := flag.Arg(0)
if i, err := strconv.Atoi(s); err == nil {
fmt.Printf("i=%d, type: %T\n", i, i)
}
if i, err := strconv.ParseInt(s, 10, 64); err == nil {
fmt.Printf("i=%d, type: %T\n", i, i)
}
var i int
if _, err := fmt.Sscan(s, &i); err == nil {
fmt.Printf("i=%d, type: %T\n", i, i)
}
輸出(如果使用參數(shù)調(diào)用"123"):
i=123, type: int
i=123, type: int64
i=123, type: int
解析自定義字符串
還有一個(gè)方便的工具fmt.Sscanf(),它為格式字符串提供了更大的靈活性,您可以在輸入中指定數(shù)字格式(例如寬度,基數(shù)等)以及其他額外的字符string。
這對(duì)于解析包含數(shù)字的自定義字符串非常有用。例如,如果"id:00123"以前綴形式提供輸入,"id:"并且數(shù)字固定為5位數(shù)字,如果較短則用零填充,這很容易解析,如下所示:
s := "id:00123"
var i int
if _, err := fmt.Sscanf(s, "id:%5d", &i); err == nil {
fmt.Println(i) // Outputs 123
}
- 3 回答
- 0 關(guān)注
- 349 瀏覽
添加回答
舉報(bào)