0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

「A Tour of Go」 の Exercise: Slices を解きました

Posted at

引き続きGo公式のチュートリアル「A Tour of Go」を読み進めています。その中に練習問題がいくつか用意されています。当記事は、Sliceに関する練習問題「Exercise: Slices」を解いた記録です。

コード

package main

import "golang.org/x/tour/pic"

func Pic(dx, dy int) [][]uint8 {
	ret := make([][]uint8, dy)
	for i := 0; i < dy; i++ {
		ret[i] = make([]uint8, dx)
		for j := 0; j < dx; j++ {
            // 式によって表示される画像が変わる
            ret[i][j] = uint8(i^j)
			// ret[i][j] = uint8((i^2) * (j^2))
			// ret[i][j] = uint8((i + j) / 2)
			// ret[i][j] = uint8(i * j)
		}
	}
	return ret
}

func main() {
	pic.Show(Pic)
}

解説

処理は

  1. main関数がPic関数を呼び出す
  2. 二次元でサイズdyのスライスret(可変長配列)を定義
  3. retの各要素をサイズdxの配列に調整
  4. forのインデックスによってretの各要素を更新
  5. main関数に戻り描画

の流れです。

ret[i][j] = ?

上式の?によって表示される画像が変わるので色々試してみると面白いです。

最後に

main関数が呼び出しているpic.Showには立ち入っていないので、余裕ができたらこちらも確認してみたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?