Golang преобразование строки в int64
Я хочу преобразовать строку в int64. То, что я нахожу в пакете strconv, является функцией Atoi. Похоже, что он приводит строку к int и возвращает ее:
// Atoi is shorthand for ParseInt(s, 10, 0).
func Atoi(s string) (i int, err error) {
i64, err := ParseInt(s, 10, 0)
return int(i64), err
}
Синтаксический анализ фактически возвращает int64:
func ParseInt(s string, base int, bitSize int) (i int64, err error){
//...
}
Итак, если я хочу получить int64 из строки, следует ли мне избегать использования Atoi, вместо этого использовать ParseInt? Или где-то спрятан Atio64?
2 ответов:
Нет, Atoi64 не существует. Вы также должны передать 64 в качестве последнего параметра для ParseInt, иначе он может не дать ожидаемого значения в 32-разрядной системе.
Синтаксический анализ строки в int64 Пример:
// Use the max value for signed 64 integer. http://golang.org/pkg/builtin/#int64 var s string = "9223372036854775807" i, err := strconv.ParseInt(s, 10, 64) if err != nil { panic(err) } fmt.Printf("Hello, %v with type %s!\n", i, reflect.TypeOf(i))Вывод:
Здравствуйте, 9223372036854775807 с типом int64!
Comments