2019年3月16日土曜日

開発環境

プログラミング言語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 コメント:

コメントを投稿