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