Size: a a a

2020 July 20

с

сонная википедия... in Go-go!
const всегда при компиляции
источник

EB

Evgeniy Baranov in Go-go!
спасибо
источник

ЕО

Евгений Омельченко... in Go-go!
Daniel Podolsky
а что именно не получается написать?

пайплайн же можно сделать, правда?
Так интерфейс (type A)Monad требует метода Bind (type B)(f (func (a A) (Monad B))) (Monad B)
источник

с

сонная википедия... in Go-go!
ну это же fmap
источник

ЕО

Евгений Омельченко... in Go-go!
Нет, в fmap анонимная функция не монаду возвращает, а чистое значение
источник

ВГ

Владимир Гришин... in Go-go!
по правилам бокса или мма?
источник

МП

Мимо Проходящий... in Go-go!
сонная википедия
смешно отрицать тот факт что runtime DI имеет множество недостатков по сравнению comptime DI
Для любой абстракции можно найти множество недостатков по сравнению с решением в лоб, кэп. Если очень хочется найти
источник

с

сонная википедия... in Go-go!
с чего бы кодогенерируемый DI это решение в лоб, а рефлект это абстракция не  в лоб?
источник

ЕО

Евгений Омельченко... in Go-go!
Рефлект это решение в лоб как раз
источник

VS

Vyacheslav Sitnikov in Go-go!
Народ, подскажите плз, в чём подвох:
var value []byte
cache := map[string]map[string]string{}
cache["key"] = map[string]string{}
_ = json.Unmarshal(value, &cache["key"])
получаю ошибку компиляции: cannot take the address of cache["key"]

При этом то же самое нормально работает с использованием промежуточной переменной:
var value []byte
cache := map[string]map[string]string{}
tmp := map[string]string{}
_ = json.Unmarshal(value, &tmp)
cache["key"] = tmp

https://play.golang.org/p/xC12qPTaMfN
источник

DP

Daniel Podolsky in Go-go!
Vyacheslav Sitnikov
Народ, подскажите плз, в чём подвох:
var value []byte
cache := map[string]map[string]string{}
cache["key"] = map[string]string{}
_ = json.Unmarshal(value, &cache["key"])
получаю ошибку компиляции: cannot take the address of cache["key"]

При этом то же самое нормально работает с использованием промежуточной переменной:
var value []byte
cache := map[string]map[string]string{}
tmp := map[string]string{}
_ = json.Unmarshal(value, &tmp)
cache["key"] = tmp

https://play.golang.org/p/xC12qPTaMfN
никакого подвоха, go отказывается выдавать вам адрес поля в map - поле может переехать при ребалансинге
источник

VS

Vyacheslav Sitnikov in Go-go!
Daniel Podolsky
никакого подвоха, go отказывается выдавать вам адрес поля в map - поле может переехать при ребалансинге
а оно не должно разве в рантайме высчитываться?
источник

DP

Daniel Podolsky in Go-go!
Vyacheslav Sitnikov
а оно не должно разве в рантайме высчитываться?
вопрос не ясен
источник

VS

Vyacheslav Sitnikov in Go-go!
Daniel Podolsky
вопрос не ясен
В момент выполнения Unmarshal разве нельзя вычислить адрес мапы?
источник

VS

Vyacheslav Sitnikov in Go-go!
Хотя да, чего-то я туплю. Может быть, что такого значения вообще не будет в ней
источник

DP

Daniel Podolsky in Go-go!
какой адрес мапы?
источник

ЕО

Евгений Омельченко... in Go-go!
Vyacheslav Sitnikov
Народ, подскажите плз, в чём подвох:
var value []byte
cache := map[string]map[string]string{}
cache["key"] = map[string]string{}
_ = json.Unmarshal(value, &cache["key"])
получаю ошибку компиляции: cannot take the address of cache["key"]

При этом то же самое нормально работает с использованием промежуточной переменной:
var value []byte
cache := map[string]map[string]string{}
tmp := map[string]string{}
_ = json.Unmarshal(value, &tmp)
cache["key"] = tmp

https://play.golang.org/p/xC12qPTaMfN
Вопрос на засыпку: что произойдёт, если после вычисления адреса cache[key] и перед вызовом Unmarshal горутина остановится, в другой горутине запишут в мап, хеш-мапа перестроится и адрес cache[key] сменится?
источник

VS

Vyacheslav Sitnikov in Go-go!
Daniel Podolsky
какой адрес мапы?
cache["key"] = map[string]string{}
у cache["key"] точно есть адрес в памяти к моменты анмаршаллинга. Но я понял в чем подвох, спасибо
источник

E

Edgar in Go-go!
Евгений Омельченко
Вопрос на засыпку: что произойдёт, если после вычисления адреса cache[key] и перед вызовом Unmarshal горутина остановится, в другой горутине запишут в мап, хеш-мапа перестроится и адрес cache[key] сменится?
Паника? Там вроде происходит паника с текстом, что не защищено от конкурентной работы
источник

Н

Никита in Go-go!
Vyacheslav Sitnikov
cache["key"] = map[string]string{}
у cache["key"] точно есть адрес в памяти к моменты анмаршаллинга. Но я понял в чем подвох, спасибо
Адрес то есть, но как и написали выше, он может поменяться, поэтому такое делать нельзя
источник