開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Go (プログラミング言語)
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES) (Alan A.A. Donovan(著)、Brian W. Kernighan(著)、柴田 芳樹(翻訳)、丸善出版)の第4章(コンポジット型)、4.2(スライス)、4.2.2(スライス内での技法)、練習問題4.3の解答を求めてみる。
コード
package main
import "fmt"
func main() {
a := [10]int{5, 1, 4, 2, 3}
fmt.Printf("a\n%T %[1]v\n\n", a)
var aPtr *[10]int
aPtr = reverse(&a)
fmt.Printf("%T %[1]v\n", a)
fmt.Printf("%T %[1]v\n", aPtr)
fmt.Printf("%T %[1]v\n\n", *aPtr)
b := [...]int{10, 1, 9, 2, 8, 3, 7, 4, 6, 5}
fmt.Printf("b\n%T %[1]v\n\n", b)
var bPtr *[10]int
bPtr = reverse(&b)
fmt.Printf("%T %[1]v\n", b)
fmt.Printf("%T %[1]v\n", bPtr)
fmt.Printf("%T %[1]v\n\n", *bPtr)
}
func reverse(a *[10]int) *[10]int {
for i, j := 0, len(a)-1; i < j; i, j = i+1, j-1 {
a[i], a[j] = a[j], a[i]
}
return a
}
入出力結果(cmd(コマンドプロンプト)、Terminal)
C:\Users\...>go run sample3.go a [10]int [5 1 4 2 3 0 0 0 0 0] [10]int [0 0 0 0 0 3 2 4 1 5] *[10]int &[0 0 0 0 0 3 2 4 1 5] [10]int [0 0 0 0 0 3 2 4 1 5] b [10]int [10 1 9 2 8 3 7 4 6 5] [10]int [5 6 4 7 3 8 2 9 1 10] *[10]int &[5 6 4 7 3 8 2 9 1 10] [10]int [5 6 4 7 3 8 2 9 1 10] C:\Users\...>
0 コメント:
コメントを投稿