@gogolang

Страница 1573 из 1630
Daniel
16.10.2018
17:20:34
Vyacheslav
16.10.2018
17:20:58
ну, да

Foxcool
16.10.2018
17:21:06
он иногда подклывает и подставляет не те модули

Daniel
16.10.2018
17:21:19
Да

Google
Foxcool
16.10.2018
17:21:21
например вместо errors какую-то версию с другого пакета

SkyCoffee
16.10.2018
17:21:23
А я бы горутинам дал канал, дождался результата от каждой горутины и только тогда os.Exit(0)

Vyacheslav
16.10.2018
17:21:34
он иногда подклывает и подставляет не те модули
особенно когда в проекте большом есть 2 одноименных, ух, весело становится

Foxcool
16.10.2018
17:21:47
тренировка внимания

(:

Daniel
16.10.2018
17:22:08
Не, он сигнатуры же различает

Vyacheslav
16.10.2018
17:22:29
вообще все эти goimports и gofmt - великое таки благо

Marlik
16.10.2018
17:22:39
Просто надо дождаться завершения всех горутин. Самый простой способ- добавить в конце runtime.GoExit()
Вот у него 60 товаров на одной странице, 60 раз в каждой горутине будет сканироваться страница, смысл?

Daniel
16.10.2018
17:22:46
Или у вас в проекте два одноименных с одинаковыми методами? Тогда это не лечится

Vyacheslav
16.10.2018
17:23:24
Или у вас в проекте два одноименных с одинаковыми методами? Тогда это не лечится
я ничего на эту тему не буду говорить, чтобы не портить настроение себе и людям, хорошо?

SkyCoffee
16.10.2018
17:24:12
можно aliasы разные поставить, если еще не слишком поздно

Nikolay
16.10.2018
17:24:40
import pd "github.com/golang/pandas" import np "github.com/golang/numpy"

Дмитрий
16.10.2018
17:26:24
Просто надо дождаться завершения всех горутин. Самый простой способ- добавить в конце runtime.GoExit()
Спасибо. Правильно я понимаю main выполняется быстрее, чем моя горутина и обрубает эту половину?

Google
Tishka17
16.10.2018
17:26:44
или канал
А как через канал дождаться неизвестное количество горутин? Отдельно считать их под мьютексом при запуске?

SkyCoffee
16.10.2018
17:27:42
запускаешь горутины и даешь им в аргументы канал. Ждешь, пока из канала придет сообщений столько, сколько у тебя горутин

Pawel
16.10.2018
17:28:06
товарищи, а вы вот как называете проекты - с андерскором, типа мой_проект или КемелКейсом типа МойПроект? тот же и к пакетам вопрос? я прост или упустил этот момент из виду, или не пишут об этом.
Тут есть одна житейская мудрость. Если не получается сразу придумать хорошее название (понятное, короткое, емкое, не меняющее смысл со временем), то надо лучше сразу брать что-то вообще отвязанное от смысла этой вещи. Ну типа не уверен еще как будет называться продукт, не знаешь что точно будет делать какой-то модуль, не знаешь что именно будет стоять на каком-то сервере? Не пиши приблизительно. Пиши лучше какой-нибудь "XZ", "Vasya", "XXX", "Yozhik", "Lego", "Peppa", "Orange", "Jedi", похеру. Смысл к абстрактному названию со временем прилипнет сам. Неточное же название будет все время путать, а переименование зачастую - дичайше геморойный процесс. У меня например пакеты называются "микки маус", "дональд дак" "трамп" и так далее. И я прекрасно знаю что где лежит. Гугель свои внутренние штуки называет как разные инструменты, "дремель" например. Ну и стоит напомнить что фирмы, магазины, и бренды, не называются "производитель хипстерских телефонов", "в основном жрачка", и "дорогая одежда для баб".

Nikolay
16.10.2018
17:28:22
Ну то есть считать :)
ну да :) более того, можно их прибивать через тот же канал

Tishka17
16.10.2018
17:28:42
зачем под мьютексом-то?
А хз. Если у меня горутины могут запускать ещё, не надо ли инкремент как-то защищать?

Nikolay
16.10.2018
17:29:02
он вообще у тебя никуда за пределы основной горутины не идет

ну или той, где у тебя шедулер

Tishka17
16.10.2018
17:29:28
Ну горутина запускает 5 горутин. Каждая из них ещё сколькото

Например

Vyacheslav
16.10.2018
17:30:03
у них же свой каунтер в рамках "материнской", не?

зачем считать все одним?

Tishka17
16.10.2018
17:30:28
Ну материнская должна дождаться всех. Промежуточные ожидания не нужны

Nikolay
16.10.2018
17:30:59
будет async-await :)

Tishka17
16.10.2018
17:31:32
зачем, проще дочерних дожидться в их родителях
Ну если нужен общий канал для данных.

Vyacheslav
16.10.2018
17:31:37
разве в таком дереве ветка не должна ждать окончания своих веток, а ствол - только веток, которые от него и растут?

Google
Tishka17
16.10.2018
17:31:43
Так придется много канальчиков делать

Nikolay
16.10.2018
17:32:00
Ну если нужен общий канал для данных.
через все горутины? ну такое

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

Tishka17
16.10.2018
17:32:19
через все горутины? ну такое
Ну рекурсивный обход чего-то фактически. Почему нет?

Vyacheslav
16.10.2018
17:32:26
выглядит как боль в поддержке

Tishka17
16.10.2018
17:32:32
Ну waitgroup понятно

выглядит как боль в поддержке
Хз :) это мой второй день на го

Pawel
16.10.2018
17:32:57
Дженерики хрень. То ли дело шаблоны в плюсах
Успехов вам в чтении сообщений об ошибках компиляции на 10к экранов. Терпения вам при компиляции по пол часа, надкюсь кофе хватит

Nikolay
16.10.2018
17:32:57
Ну рекурсивный обход чего-то фактически. Почему нет?
рекурсивный обход чего-то - это просто заполнение стека, зачем для этого очередь через все горутины?

Nikolay
16.10.2018
17:36:06
Tishka17
16.10.2018
17:36:17
эээ, просто читать из него? :)
Из одного в другой перекинутт

Pawel
16.10.2018
17:36:57
Тут есть одна житейская мудрость. Если не получается сразу придумать хорошее название (понятное, короткое, емкое, не меняющее смысл со временем), то надо лучше сразу брать что-то вообще отвязанное от смысла этой вещи. Ну типа не уверен еще как будет называться продукт, не знаешь что точно будет делать какой-то модуль, не знаешь что именно будет стоять на каком-то сервере? Не пиши приблизительно. Пиши лучше какой-нибудь "XZ", "Vasya", "XXX", "Yozhik", "Lego", "Peppa", "Orange", "Jedi", похеру. Смысл к абстрактному названию со временем прилипнет сам. Неточное же название будет все время путать, а переименование зачастую - дичайше геморойный процесс. У меня например пакеты называются "микки маус", "дональд дак" "трамп" и так далее. И я прекрасно знаю что где лежит. Гугель свои внутренние штуки называет как разные инструменты, "дремель" например. Ну и стоит напомнить что фирмы, магазины, и бренды, не называются "производитель хипстерских телефонов", "в основном жрачка", и "дорогая одежда для баб".
вот ещё пара отличных имён для произвольного пакета или модуля noxepy.com burgundy.io а вот пример фантазии гомосеков com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl.factories

Nikolay
16.10.2018
17:37:02
Из одного в другой перекинутт
берешь и перекидываешь

Tishka17
16.10.2018
17:37:32
Ну понятно, что в цикле читать пока не закрыт, ага.

Просто вдруг есть готовое

Nikolay
16.10.2018
17:38:18
ну хотя там все равно цикл, да

Tishka17
16.10.2018
17:39:16
Кстати. Вопрос. Вот для канала и мапы можно просчитать элемент и упасть в случае ошибки. А можно прочитать и получить значение ok тем же оператором (скобки, стрелка). Как сделать такое для своей функции?

Google
Tishka17
16.10.2018
17:41:04
Ну типа можно написать x=mymap[key]. А можно x,ok=mymap[key].

SkyCoffee
16.10.2018
17:41:33
Сделать структуру, в которую можно положить и ок, и ошибку

Или написать функцию, возвращающую result, error

Tishka17
16.10.2018
17:42:47
Пойду проверю. Но мне казалось, тогда я обязан всегда присваивать двум переменным

SkyCoffee
16.10.2018
17:43:43
да, придется result, _ = getMyMap(key)

Tishka17
16.10.2018
17:45:41
Ну а почему для операторов скобки и стрелка не так?

SkyCoffee
16.10.2018
17:46:49
Потому что канал хранит одно значение, а функция возвращает два

Tishka17
16.10.2018
17:47:21
Ну и тем не менее я могу прочитать значение, а могу значение и признак что он не закрыт одним оператором

Nikolay
16.10.2018
17:48:47
вкратце - так захардкожено, живите с этим

SkyCoffee
16.10.2018
17:50:13
Можно найти и положительные моменты. Всегда понятно, сколько значений возвращает функция и какое из них берет код, вызывающий эту функцию

Tishka17
16.10.2018
17:50:48
не красиво что создателям языка можно такое делать, а юзерам нельзя

я так понял и переопределять операторы для своих типов тоже нельзя из коробки?

Nikolay
16.10.2018
17:56:56
не красиво что создателям языка можно такое делать, а юзерам нельзя
еще и обобщенные контейнеры в языке есть, а тебе так нельзя

Александр
16.10.2018
17:57:52
даже говорят дженерики есть

но тсс

Shub
16.10.2018
18:00:54
не красиво что создателям языка можно такое делать, а юзерам нельзя
это ж гугл, там все так. есть граждане первого класса и есть все остальные

Александр
16.10.2018
18:03:11
просто они посчитали что так меньше ошибок

или читаемость лучше

Google
Shub
16.10.2018
18:05:03
там жесткая иерархическая структура. если кто-то из core авторов посчитал нужным - объяснять он никому ничего не обязан

для pr есть группа специально обученных обезьян

Pawel
16.10.2018
18:08:53
Я б забанил за оскорбление котнтрибьютеров Го

Ну что будет, если разрешить любому коубою писать свои джненрик контейнеры и кастомные операторы, мы примерно знаем

Shub
16.10.2018
18:10:17
и что же?

и кто "мы"?

Shub
16.10.2018
18:14:39
лол

Shub
16.10.2018
18:19:45
то есть скала отличается от го только возможностью написать кастомный оператор равенства для своих структур?

почему питон в скалу не превратился?

Shub
16.10.2018
18:20:45
вполне себе может

Nikolay
16.10.2018
18:20:56
почему питон в скалу не превратился?
потому что референсная имплементация не на jvm и есть ограничения по гибкости

Shub
16.10.2018
18:21:10
каким боком тут jvm?

Nikolay
16.10.2018
18:21:11
вполне себе может
покажи в го мап и редус

Olzhas
16.10.2018
18:21:30
покажи в го мап и редус
Ща, генератор напишет

Nikolay
16.10.2018
18:21:53
каким боком тут jvm?
таким, что jvm-язык шейпится под нужды людей, использующих эту инфраструктуру, то есть, по сути, нужна совместимость с джавой

Страница 1573 из 1630