golang int64 to string

Пользователь

от julian , в категории: Общие вопросы , 4 года назад

Всем привет. Как в Go преобразовать переменную типа int в string и наоборот? Я пытаюсь, но выходит какой-то бред.

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

8 ответов

Пользователь

от herminio , 4 года назад


Пользователь

от herminio , 4 года назад

Используйте strconv.Itoa для преобразования int в десятичную строку.

s := strconv.Itoa(97) // s == "97"

Предупреждение: в простом преобразовании значение интерпретируется как кодовая точка Unicode, и получающаяся строка будет содержать символ, представленный этой кодовой точкой, закодированный в UTF-8.

s := string(97) // s == "a"

Пользователь

от herminio , 4 года назад

Пользователь

от julian , 4 года назад

Так, это с обычным int, а как сделать тоже самое, только с int64? Точно так же или по-другому делается? Можете пожалуйста скинуть какой-нибудь кусочек кода, в котором это всё будет?

Пользователь

от herminio , 4 года назад

Используйте strconv.FormatInt для форматирования int64 по заданному основанию.

var n int64 = 97

s := strconv.FormatInt(n, 10)

// s == "97" (десятичный)

 

var n int64 = 97

s := strconv.FormatInt(n, 16)

// s == "61" (шестнадцатеричный)

Пользователь

от julian , 4 года назад

Так, я понял, как целое преобразовать в строку. А как сделать наоборот, чтобы из строки сделать целое число? Если можно, покажите также на примере кода.

Пользователь

от herminio , 4 года назад

Используйте strconv.Atoi для парсинга десятичной строки в int.

s := "97"

if n, err := strconv.Atoi(s); err == nil {

   fmt.Println(n+1)

} else {

   fmt.Println(s, " не является целым числом.")

}

// Вывод: 98

 

Используйте strconv.ParseInt, чтобы парсить десятичную строку (основание 10) и проверить, соответствует ли она int64.

s := "97"

n, err := strconv.ParseInt(s, 10, 64)

if err == nil {

   fmt.Printf("%d of type %T", n, n)

}

// Вывод: 97 of type int64

Пользователь

от julian , 4 года назад

Спасибо большое. Теперь я понял. Оказалось, что я просто из инта в стринг, когда переводил переменную, то число преобразовывалось в символ, через юникод. Забавно получилось.