Обновить
4
0

Пользователь

Отправить сообщение

в первом случае изменяя переменную p в функции Foo(), вы будете работать с копией и не измените значение оригинальной переменной (p1), а втором — измените, поскольку указатель будет ссылаться на оригинальную переменную

Тут стоит упомянуть, что во втором случае не всегда, передавая указатель, мы изменим данные

В примере ниже будет выводиться Bob, так как мы передаём копию указателя в функцию, где затираем этот указатель (а не сами данные, так как не обращаемся напрямую к данным) новым

type Person struct {
	Name string
}

func main() {
	p := &Person{
		Name: "Bob",
	}

	fmt.Println(p.Name) // Bob

	changePerson(p)

	fmt.Println(p.Name) // Bob
}

func changePerson(p *Person)  {
	p = &Person{
		Name: "Vasya",
	}
}

Для эмулирования http запроса к хендлеру, передачи данных в JSON, проверки http ответов и содержимого тела ответов

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Средний
Git
ООП
SQL
Linux
Docker
PostgreSQL
REST
Golang
ClickHouse
RabbitMQ