[string] Go에서 int 값을 문자열로 변환하는 방법은 무엇입니까?

i := 123
s := string(i) 

s는 ‘E’이지만 원하는 것은 “123”입니다.

어떻게 “123”을받을 수 있는지 알려주십시오.

그리고 Java에서는 다음과 같이 할 수 있습니다.

String s = "ab" + "c"  // s is "abc"

concatGo에서 두 줄을 어떻게 사용할 수 있습니까?



답변

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일을 할 것입니다. 그러나 Sprintfpackage를 사용하고 reflect하나 이상의 객체를 할당하므로 효율적인 선택이 아닙니다.

여기에 이미지 설명을 입력하십시오


답변

당신이 사용할 수있는 fmt.Sprintf

예를 들어 http://play.golang.org/p/bXb1vjYbyc 를 참조 하십시오 .


답변

모두이 경우 strconvfmt.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"