i := 123
s := string(i)
s это «E», но я хочу «123»
Пожалуйста, скажите мне, как я могу получить «123».
А на Java я могу сделать так:
String s = "ab" + "c" // s is "abc"
как я могу concat
две строки в го?
string
go
int
converters
hardPass
источник
источник
Ответы:
Используйте функцию
strconv
пакетаItoa
.Например:
Вы можете объединить строки, просто используя
+
их или используяJoin
функциюstrings
пакета.источник
Если вы знаете конкретный тип значения, используйте соответствующий форматер, например,
%d
дляint
Больше информации - fmt
источник
%d
для int - thisИнтересно отметить, что
strconv.Itoa
это сокращение дляс основанием 10
Например:
эквивалентно
источник
fmt.Sprintf
,strconv.Itoa
Иstrconv.FormatInt
будет делать эту работу. НоSprintf
будет использовать пакетreflect
, и он выделит еще один объект, так что это не эффективный выбор.источник
Вы можете использовать fmt.Sprintf
См. Например, http://play.golang.org/p/bXb1vjYbyc .
источник
В этом случае оба
strconv
иfmt.Sprintf
выполняют одну и ту же работу, но с использованием функцииstrconv
пакетаItoa
- лучший выбор, потому чтоfmt.Sprintf
выделите еще один объект во время преобразования.проверьте эталонный тест здесь: https://gist.github.com/evalphobia/caee1602969a640a4530
см., например, https://play.golang.org/p/hlaz_rMa0D .
источник
fmt.Sprintf
иstrconv.iota
с точки зрения простоты использования они похожи, а приведенные выше данные показывают, что йота быстрее с меньшим влиянием GC, похоже, чтоiota
следует использовать в целом, когда требуется преобразовать одно целое число.Преобразование
int64
:источник
хорошо, большинство из них показали вам что-то хорошее. Позвольте мне дать вам это:
источник
источник