質問するログイン新規登録

質問編集履歴

7

微修正

2020/03/01 03:01

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -49,8 +49,4 @@
49
49
  len=2 cap=2 [0 1]
50
50
  len=5 cap=8 [0 1 2 3 4]
51
51
  ```
52
- となり、4行目が`cap=8`となっており、さらに混乱しました。
52
+ となり、4行目が`cap=8`となっており、さらに混乱しました。
53
-
54
- # 考察
55
- 現時点で理由として考えているのは以下です。
56
- - PlayGroundのGoのバージョンがローカルのバージョン(1.14)と異なり、appendによって新しく作られるSliceの、デフォルトで確保されるcapacityのサイズが異なる

6

微修正

2020/03/01 03:01

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -52,5 +52,5 @@
52
52
  となり、4行目が`cap=8`となっており、さらに混乱しました。
53
53
 
54
54
  # 考察
55
- 現時点で理由として考えているのはikadesu.
55
+ 現時点で理由として考えているのは以下です。
56
56
  - PlayGroundのGoのバージョンがローカルのバージョン(1.14)と異なり、appendによって新しく作られるSliceの、デフォルトで確保されるcapacityのサイズが異なる

5

追記

2020/03/01 02:55

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -49,4 +49,8 @@
49
49
  len=2 cap=2 [0 1]
50
50
  len=5 cap=8 [0 1 2 3 4]
51
51
  ```
52
- となり、4行目が`cap=8`となっており、さらに混乱しました。
52
+ となり、4行目が`cap=8`となっており、さらに混乱しました。
53
+
54
+ # 考察
55
+ 現時点で理由として考えているのはikadesu.
56
+ - PlayGroundのGoのバージョンがローカルのバージョン(1.14)と異なり、appendによって新しく作られるSliceの、デフォルトで確保されるcapacityのサイズが異なる

4

修正

2020/03/01 02:55

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -24,17 +24,17 @@
24
24
  }
25
25
 
26
26
  func printSlice(s []int) {
27
- fmt.Printf("len=%d, cap=%d %v\n", len(s), cap(s), s)
27
+ fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s)
28
28
  }
29
29
  ```
30
30
 
31
31
  ローカルでの実行結果は以下となります。
32
32
  ```zsh
33
33
  ➜ a-tour-of-go git:(master) ✗ go run more-types/46-appending-to-a-slice/main.go master
34
- len=0, cap=0 []
34
+ len=0 cap=0 []
35
- len=1, cap=1 [0]
35
+ len=1 cap=1 [0]
36
- len=2, cap=2 [0 1]
36
+ len=2 cap=2 [0 1]
37
- len=5, cap=6 [0 1 2 3 4]
37
+ len=5 cap=6 [0 1 2 3 4]
38
38
  ```
39
39
 
40
40
  実行結果4行目`cap=6`の理由を教えて頂けないでしょうか。

3

追記

2020/03/01 02:48

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -28,7 +28,7 @@
28
28
  }
29
29
  ```
30
30
 
31
- 実行結果は以下となります。
31
+ ローカルでの実行結果は以下となります。
32
32
  ```zsh
33
33
  ➜ a-tour-of-go git:(master) ✗ go run more-types/46-appending-to-a-slice/main.go master
34
34
  len=0, cap=0 []

2

url追加

2020/03/01 02:47

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ローカルマシンのGoのバージョン:`go version go1.14 darwin/amd64`
2
2
 
3
- A Tour of Goで、Sliceへのappendを解説する、以下のコードがあります。
3
+ A Tour of Goで、[Sliceへのappendを解説する、以下のコードがあります。](https://tour.golang.org/moretypes/15)
4
4
  ```go
5
5
  package main
6
6
 

1

微修正

2020/03/01 02:46

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,5 @@
1
+ ローカルマシンのGoのバージョン:`go version go1.14 darwin/amd64`
2
+
1
3
  A Tour of Goで、Sliceへのappendを解説する、以下のコードがあります。
2
4
  ```go
3
5
  package main
@@ -36,4 +38,15 @@
36
38
  ```
37
39
 
38
40
  実行結果4行目`cap=6`の理由を教えて頂けないでしょうか。
39
- `[0 1 2 3 4]`なので、capacityも`5`になると考えました。
41
+ `[0 1 2 3 4]`なので、capacityも`5`になると考えました。
42
+
43
+ ---
44
+
45
+ 余談ですが、A Tour of Goの画面右のPlayGroundで実行すると
46
+ ```go
47
+ len=0 cap=0 []
48
+ len=1 cap=2 [0]
49
+ len=2 cap=2 [0 1]
50
+ len=5 cap=8 [0 1 2 3 4]
51
+ ```
52
+ となり、4行目が`cap=8`となっており、さらに混乱しました。