回答編集履歴

2

コード追加

2022/07/13 06:42

投稿

ozwk
ozwk

スコア13528

test CHANGED
@@ -5,3 +5,30 @@
5
5
  > 具体的にはある関数の引数に値型を渡し、関数内でその引数を書き変えたとしても、引数として渡した元の値は影響しないということは理解しています。
6
6
 
7
7
  ということは関数を利用して値を書き換えようと思ったらポインタを渡さなければなりませんよね?
8
+
9
+ ```go
10
+ package main
11
+ import "fmt"
12
+
13
+ func hoge(x int){
14
+ x = 10
15
+ }
16
+
17
+ func fuga(x *int){
18
+ *x = 10
19
+ }
20
+
21
+ func main(){
22
+ x := 0
23
+
24
+ x = 1 // 当然書き換えられる
25
+
26
+
27
+ hoge(x) // 書き変わらない
28
+ fmt.Println(x) // 1
29
+
30
+ fuga(&x) // 書き換わる
31
+ fmt.Println(x) // 10
32
+ }
33
+
34
+ ```

1

追記

2022/07/13 06:29

投稿

ozwk
ozwk

スコア13528

test CHANGED
@@ -1 +1,7 @@
1
1
  `&user.id`は`(&user).id`ではなく`&(user.id)`です
2
+
3
+ ---
4
+
5
+ > 具体的にはある関数の引数に値型を渡し、関数内でその引数を書き変えたとしても、引数として渡した元の値は影響しないということは理解しています。
6
+
7
+ ということは関数を利用して値を書き換えようと思ったらポインタを渡さなければなりませんよね?