golangのポインタに対して値を渡すやり方がわからず困っています。
以下の例は既存のコードの状況を抽象化して書き直しました。
やりたいこととしては、Test1関数にinterface型に対して値を代入したいです。
Go
1package main 2import "fmt" 3 4type ResultRow struct { 5 Count int `json:"count" gorm:"column:count"` 6} 7 8func Test1(count interface{}) { 9 fmt.Println("Test1の値(関数内前):%+v", count) 10 count = 4 11 fmt.Println("Test1の値(関数内後):%+v", count) 12} 13 14 15func Test(count interface{}) { 16 // *a += 1 17 fmt.Println("Testの値(関数内):%+v", count) 18 Test1(count) 19} 20 21func main() { 22 resultrow := ResultRow{} 23 resultrow.Count = 3 24 fmt.Println("Test()呼び出し前のCountの値:", resultrow.Count) 25 26 // 呼び出しで、アドレスを渡す。 27 Test(&resultrow.Count) 28 fmt.Println("Test()呼び出し後のCountの値:", resultrow.Count) 29}
Test()呼び出し前のCountの値: 3 Testの値(関数内):%+v 0xc000082020 Test1の値(関数内):%+v 0xc000082020 Test1の値(関数内):%+v 4 Test()呼び出し後のCountの値: 3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/20 04:37