Как преобразовать значение int в строку в Go?
i := 123
s := string(i)
s-Это "E", но я хочу"123"
пожалуйста, скажите мне, как я могу получить "123".
и на Java я могу сделать так:
String s = "ab" + "c" // s is "abc"
как я могу concat
две строки в Go?
7 ответов
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
, и он выделит еще один объект, поэтому это не хороший выбор.
в этом случае как strconv
и fmt.Sprintf
сделать ту же работу, но с помощью strconv
пакета Itoa
функция является лучшим выбором, потому что fmt.Sprintf
выделите еще один объект во время преобразования.
проверьте эталон здесь: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"