2012-10-10 5 views

답변

7

는 상관없이, 당신은 []string을 통해 새로운 [][]byte 및 루프를 만들 필요가 없습니다. 다음 코드를 사용하여 append를 사용하지는 않겠지 만, 실제로는 스타일의 모든 문제입니다. 코드가 완벽하게 맞습니다.

input := []string{"foo", "bar"} 
output := make([][]byte, len(input)) 
for i, v := range input { 
    output[i] = []byte(v) 
} 
fmt.Println(output) // [[102 111 111] [98 97 114]] 
+0

스타일의 문제가 아닌가요? OP의 코드는 입력 크기에 따라 할당 자에게 여러 번 핑합니다. 너의 사람들은 기억의 한 덩어리를 물을 것이고 그걸로 끝날 것이다. (물론, OP는 복합 리터럴 대신에 make ([] [] [] [], 0, len (input))을 사용할 수 있습니다 ...) – BurntSushi5

+0

예, 그가 길을 간다면 몇 시간을 할당 할 것입니다 . 그러나 문자열이 실제로 작기 때문에 많은 차이를 만들 가능성은 거의 없습니다. 당신은 make()를 사용하고 정상적인 뚜껑을 설정하는 것이 나의 예제와 같은 방식으로 할당 횟수를 줄이는 것이 옳다. –

+0

동의, 그건 내가 append()를 반복적으로 호출하는 것에 대해 싫어하는 것입니다. –

관련 문제