2017-10-14 2 views
0

정수를 기존 문자열에 연결하려고 시도하고 casting 및 추가하는 문자열을 +으로 연결하려고합니다. 그러나 그것은 효과가 없습니다.캐스팅하고 연결 연산자를 사용하여 문자열에 정수 추가

package main 

import (
    "fmt" 
) 

func main() { 
    a := 4 
    b := "The value of a is " 

    fmt.Println(b + string(a)) 
} 

이렇게하면 go playground에 가비지 문자가 인쇄되고 유닉스 터미널에는 아무 것도 표시되지 않습니다. 이것에 대한 이유는 무엇일까요? 이 방법으로 잘못된 것은 무엇입니까? Go language spec 가입일

+1

"쓰레기 문자"가 인쇄되지 않습니다. 그것은 Unicode 코드 포인트 4를 가진 문자를 출력하고 있습니다. –

+0

사소한 기술적 인 포인트 : 이동은 변환을하지 않고 타입 변환 만합니다. – Flimzy

+0

Go에서 int-to-string 캐스트가 어떻게 작동합니까? (https://stackoverflow.com/questions/34808465/how-do-int-to-string-casts-work-in-go/34808496) # 34808496) – icza

답변

2

: 문자열 유형 부호 또는 부호없는 정수 값을 변환

은 정수의 UTF-8 표현을 포함하는 문자열을 산출한다.

원하는 결과를 달성하기 위해

, 당신은 strconv.Itoa 같은 방법을 사용하여 문자열로 INT로 변환해야합니다

package main 

import (
    "fmt" 
    "strconv" 
) 

func main() { 
    a := 4 
    b := "The value of a is " 

    fmt.Println(b + strconv.Itoa(a)) 
} 
+0

이유는 무엇입니까? 그거 좋아해? –

+1

이것이 언어 정의 방법입니다. –

0

사용 fmt.Sprintf 또는 Printf을; 전송 불가 :

fmt.Sprintf("%s%d",s,i) 
관련 문제