i := 123
s := string(i)
s est 'E', mais ce que je veux, c'est "123"
S'il vous plaît dites-moi comment puis-je obtenir "123".
Et en Java, je peux faire de cette façon:
String s = "ab" + "c" // s is "abc"
comment puis-je concat
deux chaînes dans Go?
fmt.Sprintf("%v",value);
Si vous connaissez le type spécifique de valeur, utilisez le formateur correspondant, par exemple %d
pour int
.
Plus d'infos - fmt
Il est intéressant de noter que strconv.Itoa
est en abrégé pour
func FormatInt(i int64, base int) string
avec base 10
Par exemple:
strconv.Itoa(123)
est équivalent à
strconv.FormatInt(int64(123), 10)
Vous pouvez utiliser fmt.Sprintf
Voir http://play.golang.org/p/bXb1vjYbyc par exemple.
Dans ce cas, strconv
et fmt.Sprintf
effectuent le même travail, mais l'utilisation de la fonction strconv
du package Itoa
est le meilleur choix, car fmt.Sprintf
alloue un objet supplémentaire pendant conversion.
vérifiez le point de repère ici: https://Gist.github.com/evalphobia/caee1602969a640a45
voir https://play.golang.org/p/hlaz_rMa0D par exemple.
Conversion de int64
:
n := int64(32)
str := strconv.FormatInt(n, 10)
fmt.Println(str)
// Prints "32"
ok, la plupart d'entre eux vous ont montré quelque chose de bien. Laissez-moi vous donner ceci:
// ToString Change arg to string
func ToString(arg interface{}, timeFormat ...string) string {
if len(timeFormat) > 1 {
log.SetFlags(log.Llongfile | log.LstdFlags)
log.Println(errors.New(fmt.Sprintf("timeFormat's length should be one")))
}
var tmp = reflect.Indirect(reflect.ValueOf(arg)).Interface()
switch v := tmp.(type) {
case int:
return strconv.Itoa(v)
case int8:
return strconv.FormatInt(int64(v), 10)
case int16:
return strconv.FormatInt(int64(v), 10)
case int32:
return strconv.FormatInt(int64(v), 10)
case int64:
return strconv.FormatInt(v, 10)
case string:
return v
case float32:
return strconv.FormatFloat(float64(v), 'f', -1, 32)
case float64:
return strconv.FormatFloat(v, 'f', -1, 64)
case time.Time:
if len(timeFormat) == 1 {
return v.Format(timeFormat[0])
}
return v.Format("2006-01-02 15:04:05")
case jsoncrack.Time:
if len(timeFormat) == 1 {
return v.Time().Format(timeFormat[0])
}
return v.Time().Format("2006-01-02 15:04:05")
case fmt.Stringer:
return v.String()
case reflect.Value:
return ToString(v.Interface(), timeFormat...)
default:
return ""
}
}
package main
import (
"fmt"
"strconv"
)
func main(){
//First question: how to get int string?
intValue := 123
// keeping it in separate variable :
strValue := strconv.Itoa(intValue)
fmt.Println(strValue)
//Second question: how to concat two strings?
firstStr := "ab"
secondStr := "c"
s := firstStr + secondStr
fmt.Println(s)
}