Go에서 int 값을 문자열로 변환하는 방법은 무엇입니까?
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
그것은주의하는 것이 재미 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
package를 사용하고 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 를 참조 하십시오 .
전환 int64
:
n := int64(32)
str := strconv.FormatInt(n, 10)
fmt.Println(str)
// Prints "32"
좋아, 그들 대부분은 당신에게 좋은 걸 보여 줬어 이것을 드리겠습니다 :
// 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)
}
참고 URL : https://stackoverflow.com/questions/10105935/how-to-convert-an-int-value-to-string-in-go
'Programing' 카테고리의 다른 글
Java 7에서 다이아몬드 연산자 (<>)의 요점은 무엇입니까? (0) | 2020.02.18 |
---|---|
장고에서 비즈니스 로직 및 데이터 액세스 분리 (0) | 2020.02.18 |
정수를 16 진수로 변환 한 후 다시 변환 (0) | 2020.02.18 |
변경 이벤트에서 라디오를 사용하는 방법은 무엇입니까? (0) | 2020.02.18 |
바이너리 파일과의 Git 충돌 해결 (0) | 2020.02.18 |