Go에서 int 값을 문자열로 변환하려면 어떻게 해야 합니까?
i := 123
s := string(i)
s는 'E'이지만 내가 원하는 것은 '123'이다.
'123'을 받는 방법을 알려주세요.
Java에서는 다음과 같은 작업을 수행할 수 있습니다.
String s = "ab" + "c" // s is "abc"
제가 어떻게.concat
바둑에 두 줄이요?
패키지 사용Itoa
기능.
예를 들어 다음과 같습니다.
package main
import (
"strconv"
"fmt"
)
func main() {
t := strconv.Itoa(123)
fmt.Println(t)
}
스트링의 조합은 다음과 같이 간단하게 할 수 있습니다.+
'그것들을 사용하거나, 또는 '그것들'을 사용하여Join
패키지의 기능.
fmt.Sprintf("%v",value);
특정 유형의 값을 알고 있는 경우 해당 포맷터를 사용합니다.%d
위해서int
상세정보 - fmt
fmt.Sprintf
,strconv.Itoa
그리고.strconv.FormatInt
그 일을 할 수 있을 거야그렇지만Sprintf
패키지를 사용합니다.reflect
오브젝트를 1개 더 할당하기 때문에 효율적인 선택이 아닙니다.
을 주목하는 것은 흥미롭다.strconv.Itoa
의 줄임말이다
func FormatInt(i int64, base int) string
베이스 10으로
예:
strconv.Itoa(123)
와 동등하다
strconv.FormatInt(int64(123), 10)
fmt를 사용할 수 있습니다.Sprintf 또는 strconv.Format Float
예를들면
package main
import (
"fmt"
)
func main() {
val := 14.7
s := fmt.Sprintf("%f", val)
fmt.Println(s)
}
이 경우 둘 다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"
다른 옵션:
package main
import "fmt"
func main() {
n := 123
s := fmt.Sprint(n)
fmt.Println(s == "123")
}
https://golang.org/pkg/fmt#Sprint
좋아, 대부분 좋은 걸 보여줬지이렇게 하자.
// 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' 카테고리의 다른 글
WPF ComboBox에서 선택한 항목에 드롭다운 부분의 항목과 다른 템플릿을 사용할 수 있습니까? (0) | 2023.04.16 |
---|---|
셸 스크립팅에서 정수 비교를 위한 논리적 OR 작업을 수행하는 방법은 무엇입니까? (0) | 2023.04.16 |
단일 인스턴스 WPF 응용 프로그램을 만드는 올바른 방법은 무엇입니까? (0) | 2023.04.16 |
Python에서 범위를 벗어난 인덱스 기본값 가져오기 (0) | 2023.04.16 |
개인 API를 사용하지 않고 현재 첫 번째 응답자를 가져옵니다. (0) | 2023.04.16 |