2015-07-04 2 views
1

Я новичок в golang, попытаться сделать что-то вроде этого:преобразовать байт в строку в golang

bytes := [4]byte{1,2,3,4} 
str := convert(bytes) 

//str == "1,2,3,4" 

не искал много, на самом деле не знаю, как это сделать.

Я знаю, что это не будет работать:

str = string(bytes[:]) 
+0

ли первый комментарий, что вы хотите иметь в результате? – inf

+0

@inf да, это то, что я хочу –

+3

http://golang.org/pkg/strconv/#Itoa – tomasz

ответ

6

Не самый эффективный способ осуществить это, но вы можете просто написать:

func convert(b []byte) string { 
    s := make([]string,len(b)) 
    for i := range b { 
     s[i] = strconv.Itoa(int(b[i])) 
    } 
    return strings.Join(s,",") 
} 

называться по:

bytes := [4]byte{1,2,3,4} 
str := convert(bytes[:]) 
5

Если вы не привязаны к точному представлению, то вы можете использовать fmt.Sprint:

fmt.Sprint(bytes) // [1 2 3 4] 

С другой стороны, если вы хотите, чтобы ваша точную запятую стиль, то вы должны построить его самостоятельно, используя петлю вместе с strconv.Itoa.

Смежные вопросы