Size: a a a

2020 December 11

VS

Vyacheslav Sitnikov in Go-go!
Zver
Именно так map[string]Project? Не map[string]*Project?
именно так. Я поменял минут 10 назад на map[string]*Project - пока всё работает без ошибок. Хотя и раньше не сразу паниковало
источник

АД

Алексей Долгов... in Go-go!
Vyacheslav Sitnikov
именно так. Я поменял минут 10 назад на map[string]*Project - пока всё работает без ошибок. Хотя и раньше не сразу паниковало
оч странно. без двойного вызова RUnlock такого эффекта трудно добиться.
defer из принципа не используете?
источник

VS

Vyacheslav Sitnikov in Go-go!
Алексей Долгов
оч странно. без двойного вызова RUnlock такого эффекта трудно добиться.
defer из принципа не используете?
Ну если нет нескольких return, то стараюсь не использовать
источник

PK

Phil Kulin in Go-go!
Zver
Именно так map[string]Project? Не map[string]*Project?
А почему было map[string]Project? Там миллион записей, которые часто меняются, боялись нагрузить GC?
источник

PK

Phil Kulin in Go-go!
Vyacheslav Sitnikov
но эти проекты лежат в мапе map[string]Project и перебираются через range, может при этом происходить неявное копирование мютекса?
Там явное копирование
источник

VS

Vyacheslav Sitnikov in Go-go!
Phil Kulin
А почему было map[string]Project? Там миллион записей, которые часто меняются, боялись нагрузить GC?
Нет, я просто ступил :)
источник

PK

Phil Kulin in Go-go!
Vyacheslav Sitnikov
Нет, я просто ступил :)
Ну почему сразу "ступил". В принципе, это не то чтобы плохо само по себе
источник

W

Web in Go-go!
Всем привет. Есть три package: ru, ua, kz. В них есть свои ф-ции. Ф-ция может пренадлежать только к ru, а может и ко всем трём. Но вопрос в том, как лучше сделать, если Ф-ция может выполнять работу всех трех пакетов. Её дублировать в каждый пакет или есть лучше решение?
источник

н

немедленно in Go-go!
Web
Всем привет. Есть три package: ru, ua, kz. В них есть свои ф-ции. Ф-ция может пренадлежать только к ru, а может и ко всем трём. Но вопрос в том, как лучше сделать, если Ф-ция может выполнять работу всех трех пакетов. Её дублировать в каждый пакет или есть лучше решение?
речь про переводы?
источник

W

Web in Go-go!
немедленно
речь про переводы?
Что-то в этом роде. А вообще про сервисы, которые связаны с номерами этих стран. То есть если человек ввёл ру номер, то используется ру пакет и все ф-ции внутри
источник

A

Anton in Go-go!
Я наверное что-то упускаю в понимании интерфейсов
https://play.golang.org/p/XAOPMDrP_9j

Как можно сделать так что бы реализация интерфейса Caller возвращала не интерфейс Result, а конкретный тип, который реализует этот интерфейс.

В месте реализации я не хочу завязываться на интерфейс Result и наборот - интерейс не хочу завязывать на конкретный тип
источник
2020 December 12

V

Vlad in Go-go!
Anton
Я наверное что-то упускаю в понимании интерфейсов
https://play.golang.org/p/XAOPMDrP_9j

Как можно сделать так что бы реализация интерфейса Caller возвращала не интерфейс Result, а конкретный тип, который реализует этот интерфейс.

В месте реализации я не хочу завязываться на интерфейс Result и наборот - интерейс не хочу завязывать на конкретный тип
Если а имплементации implementation Call, сделаете Result возвращаемым типом, все будет хорошо. Будет соответствовать интерфейсу и возвращать скрытую реализацию через интерфейс
источник

A

Anton in Go-go!
это я понимаю
источник

A

Anton in Go-go!
но разве нельзя ли сделать что бы имплементация не знала ничего про интерфейс
источник

V

Vlad in Go-go!
Anton
это я понимаю
А в чем вопрос? У вас сейчас структура не имплементирует интерфейс. В го с этим строго, даже указатель и не указатель - разве типы
источник

V

Vlad in Go-go!
Anton
но разве нельзя ли сделать что бы имплементация не знала ничего про интерфейс
Поменяйте тип у интереса на result
источник

A

Anton in Go-go!
суть задачи - в месте, где используется вызывается код я хочу абстрагироваться от конкретной реализации
мне не важно что конкретно вернет реализация метода Call если там будут нужные мне методы

но при этом я хотел бы в месте реализации интерфейса Caller ничего не знать про то какой какой интерфейс ожидается вернуть.
источник

A

Anton in Go-go!
Vlad
Поменяйте тип у интереса на result
> В месте реализации я не хочу завязываться на интерфейс Result и наборот - интерейс не хочу завязывать на конкретный тип
источник

н

немедленно in Go-go!
придётся использовать интерфейс
источник

V

Vlad in Go-go!
Anton
> В месте реализации я не хочу завязываться на интерфейс Result и наборот - интерейс не хочу завязывать на конкретный тип
Ну а как вы хотите? Не делайте интерфейс вообще тогда, вы не можете его использовать не имплементируя полностью (с соответсвии типом возвращаемым)
источник