[ Golang을 배워보자! ] A Tour of Go - 36 연습: 슬라이스 ( range의 활용 )steemCreated with Sketch.

in golang •  7 years ago  (edited)

안녕하세요.

golang을 공부중인 jungmu 입니다.

기초를 다지기위해 https://go-tour-kr.appspot.com/ 에서 공부를 하던중 36번 문제가 배울게 좀 있어보여서 해설을 포스팅 해 보려고합니다.

문제는 위와 같습니다.

여기서 Pic 함수를 구현하는게 목표인데요.

아직 go에 익숙하지 않다보니 처음에는

func Pic(dx, dy int) [][]uint8 {
    arr := make([][]uint8, dy)    
    for i := 0; i < dy; i++ {
        arr[i] = make([]uint8, dx)
    }   
    for i := 0; i < dy; i++ {
        for j := 0; j < dx; j++ {           
                arr[i][j] = uint8(i^j)
        }
    }   
    return arr
}

이와같이 작성하였는데요.

좀더 생각을 해보니 range 를 활용하는게 좋을 것 같아서

func Pic(dx, dy int) [][]uint8 {
    arr := make([][]uint8, dy)
    
    for i := range arr {
        arr[i] = make([]uint8, dx)
        for j := range arr[i] {         
                arr[i][j] = uint8(i^j)
        }
    }
    
    return arr
}

이와 같이 수정하였습니다.

처음에 작성한것과 같이 사용해도 문제는 없습니다만,
가독성과 유지보수 성에서 아래쪽이 조금 더 괜찮아 보입니다.

golang에서는 range를 활용해 iterates할수 있는게 상당히 편리하기 때문에.
까먹지 말고 활용하도록 해야겠습니다 ㅎㅎ

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!