Пытаюсь в функции поменять параметры с использованием указателей
package main
import (
"fmt"
"net/http"
)
type TestStruct struct {
Number int
}
func myinit(resp *http.Response, teststruct *TestStruct) {
webPage := "https://ya.ru"
resp, _ = http.Get(webPage)
fmt.Printf("resp.StatusCode = %v\n", resp.StatusCode)
teststruct.Number = 100
}
func main() {
var teststruct TestStruct
teststruct.Number = 10
fmt.Printf("teststruct.Number = %v\n", teststruct.Number)
var resp http.Response
resp.StatusCode = 400
fmt.Printf("resp.StatusCode = %v\n", resp.StatusCode)
myinit(&resp, &teststruct)
fmt.Printf("teststruct.Number = %v\n", teststruct.Number)
fmt.Printf("resp.StatusCode = %v\n", resp.StatusCode)
}
Вывод работы
teststruct.Number = 10
resp.StatusCode = 400
resp.StatusCode = 200
teststruct.Number = 100
resp.StatusCode = 400
То есть
teststruct.Number нормально поменялось внутри функции myinit и в main после работы функции имеет значение 100
resp.StatusCode внутри функции приняло значение 200 а после выхода в main опять получило значение 400
Хотя обе переменные передавались через указатели.
В чем проблема?