선수로 산다, 때론 좋은 코치로
[golang] A Tour of Go - 36 연습 문제 본문
A Tour of Go - 36 연습 문제
https://go-tour-kr.appspot.com/#36
Exercise: Slices
https://tour.golang.org/moretypes/18
Pic이라는 함수를 구현합니다. 이 함수는 dy개 만큼의 길이를 가지는 슬라이스를 리턴해야 하는데, 각각의 요소들은 또한 dx 개의 8비트 부호없는 8비트 정수 타입을 가지는 슬라이스입니다.
(여러분은 [][]uint8 슬라이스 내에서 사용할 각각의 []uint8 슬라이스를 할당하기 위해 루프를 활용해야 할 것입니다.)
(타입 간의 변환을 위해서는 uint8(intValue)을 사용합니다.)
package main
import "code.google.com/p/go-tour/pic"
func Pic(dx, dy int) [][]uint8 {
return arr
}
func main() {
pic.Show(Pic)
}
A Tour of Go 를 살펴보다가 처음 본 연습문제입니다. 이후에 가끔 연습문제가 나옵니다.
C/C++을 사용한 지 시간이 좀 흘렀는데도 문제를 보니 이중 포인터 생각이 나서 풀어 봤습니다.
문제의 순서대로 코딩합니다.
dy개 만큼의 길이를 가지는 슬라이스를 만들어라.
var arr = make([][]unit8, dy)
각 요소들은 dx개의 8비트 부호없는 8비트 정수 타입을 가지는 슬라이스.
arr[y] = make([]uint8, dx)
즉 dy의 슬라이스를 먼저 생성하고, 각 요소마다 dx의 슬라이스를 생성합니다.
func Pic(dx, dy int) [][]uint8 {
var arr = make([][]uint8, dy)
for y := range arr {
arr[y] = make([]uint8, dx)
for x := range arr[y] {
arr[y][x] = uint8(x^y)
}
}
return arr
}
Go 언어로 C에서도 잘 사용하지 않았던 이런 로직을 사용할지는 모르겠습니다.
A Tour of Go 예제 관련
- A Tour of Go - 36 연습 문제, 슬라이스 이중배열 관련, http://godsman.tistory.com/23
- A Tour of Go - 41 연습 문제, golang의 맵, http://godsman.tistory.com/24
- A Tour of Go - 44 연습 문제, (클로저)함수를 리턴, http://godsman.tistory.com/25
'개발 관련 > go' 카테고리의 다른 글
[golang] A Tour of Go - 44 연습 문제 (0) | 2018.02.01 |
---|---|
[golang] A Tour of Go - 41 연습 문제 (0) | 2018.02.01 |
[golang] Go 언어 참고자료 (0) | 2018.02.01 |
[golang] 도서-Go 인 액션 (0) | 2018.02.01 |
[golang] 도서-Go 언어 실전 테크닉 (0) | 2018.02.01 |