Size: a a a

2021 June 20

N

Nigless@potato: ~/tg... in Go-go!
ошибочка при запуске тестов

go test -v main/**/*

main/context/context_test.go:6:2: cannot find package
источник

N

Nigless@potato: ~/tg... in Go-go!
пакет я поставил
источник

N

Nigless@potato: ~/tg... in Go-go!
go get ...
источник

A

Artur in Go-go!
ее нет
источник

A

Artur in Go-go!
Я нашёл механику которая работает не логично и хочу понять почему. Спросил здесь.
источник

A

Artur in Go-go!
Какая разница какой порядок. Я p меняю по ссылке.
источник

Z

Zver in Go-go!
Посмотрите еще раз что в return вставляется.
источник

AK

Andrey Kartashov in Go-go!
когда у тебя именованная переменная, она хранится на стеке. И p в main копирует значение из стека.
когда у тебя не именованная переменная, её зачение при return p копируется на стек, а что происходит после return с ней, на стек уже не влияет. p в main опять получает значение из стека
источник

AK

Andrey Kartashov in Go-go!
короче, не используй это, не надо так :)
источник

AK

Andrey Kartashov in Go-go!
потому что запутаешься, вернёшь вместо p что нибудь другое, и будешь думать, чего это оно перестало меняться
источник

A

Artur in Go-go!
А так дело не в порядке выполнения. Теперь понятно
источник

A

Artur in Go-go!
А вот это объяснение не понятно
источник

A

Artur in Go-go!
Но, почему именование выходного аргумента меняет это поведение?
источник

AK

Andrey Kartashov in Go-go!
а что именно непонятно?
источник

Z

Zver in Go-go!
Потому что вы тогда работает напрямую с переменной, которая возвращается return.
источник

A

Artur in Go-go!
Да я и так с ней работаю. То что дефер создаёт промежуточную переменную это ж вообще странность.
источник

A

Artur in Go-go!
Позже перечитаю. Может получше будет.
источник

Z

Zver in Go-go!
Это разные переменные.

В вашем случае получается 2 переменные. Одна с которой работает и вторая которая возвращается. И вот с дефером вы вклиниваетесь в то место, где ваша переменная уже скопированая в переменные возврата, а меняете вы переменную, кторая уже нигде не используется.
источник

Z

Zver in Go-go!
Создает не дефер.
источник

A

Artur in Go-go!
Спасибо всем. Ушёл думать
источник