i := 123
s := string(i)
s - это "E", но я хочу "123"
Скажите, пожалуйста, как я могу получить "123".
И в Java я могу сделать так:
String s = "ab" + "c" // s is "abc"
как я могу concat две строки в Go?
i := 123
s := string(i)
s - это "E", но я хочу "123"
Скажите, пожалуйста, как я могу получить "123".
И в Java я могу сделать так:
String s = "ab" + "c" // s is "abc"
как я могу concat две строки в Go?
Используйте strconv пакет Itoa.
Например:
package main
import (
"strconv"
"fmt"
)
func main() {
t := strconv.Itoa(123)
fmt.Println(t)
}
Вы можете конкатенировать строки просто с помощью + 'или использовать функцию Join пакета strings.
fmt.Sprintf("%v",value);
Если вы знаете, какой тип значения использует соответствующий форматтер, например %d для int
Дополнительная информация - fmt
Вы можете использовать fmt.Sprintf
См. http://play.golang.org/p/bXb1vjYbyc, например.
Интересно отметить, что strconv.Itoa сокращенное для
func FormatInt(i int64, base int) string
с базой 10
Пример:
strconv.Itoa(123)
эквивалентно
strconv.FormatInt(int64(123), 10)
fmt.Sprintf, strconv.Itoa и strconv.FormatInt выполнит эту работу. Но Sprintf будет использовать пакет reflect, и он выделит еще один объект, поэтому он не будет хорошим выбором.
В этом случае оба strconv и fmt.Sprintf выполняют одно и то же задание, но использование функции strconv package Itoa - лучший выбор, потому что fmt.Sprintf выделяет еще один объект во время преобразования.
проверьте этот показатель здесь: https://gist.github.com/evalphobia/caee1602969a640a4530
Преобразование int64:
n := int64(32)
str := strconv.FormatInt(n, 10)
fmt.Println(str)
// Prints "32"