Как преобразовать значение int в строку в Go?

i := 123
s := string(i) 

s-Это "E", но я хочу"123"

пожалуйста, скажите мне, как я могу получить "123".

и на Java я могу сделать так:

String s = "ab" + "c"  // s is "abc"

как я могу concat две строки в Go?

7 ответов


использовать strconv пакета .


fmt.Sprintf("%v",value);

Если вы знаете конкретный тип значения в соответствующем форматирования, например %d на int

Подробнее - fmt


можно использовать fmt.Sprintf

см.http://play.golang.org/p/bXb1vjYbyc например.


интересно отметить, что strconv.Itoa is сокращение на

func FormatInt(i int64, base int) string

с базой 10

Например:

strconv.Itoa(123)

эквивалентно

strconv.FormatInt(int64(123), 10)

fmt.Sprintf, strconv.Itoa и strconv.FormatInt сделает работу. Но!--3--> будет использовать пакет reflect, и он выделит еще один объект, поэтому это не хороший выбор.

enter image description here


в этом случае как strconv и fmt.Sprintf сделать ту же работу, но с помощью strconv пакета Itoa функция является лучшим выбором, потому что fmt.Sprintf выделите еще один объект во время преобразования.

check the nenchmark result of both проверьте эталон здесь:https://gist.github.com/evalphobia/caee1602969a640a4530

см.https://play.golang.org/p/hlaz_rMa0D например.


преобразование int64:

n := int64(32)
str := strconv.FormatInt(n, 10)

fmt.Println(str)
// Prints "32"