@proGO

Страница 331 из 1674
Shorty(Ale Chapa) Manskiy
12.12.2016
18:21:17
Выше же ответили, можно было и догадаться про что речь

Phil
12.12.2016
18:34:33
Выше же ответили, можно было и догадаться про что речь
нет. я не догодался до сих пор. я настаиваю на невтягивании в Го левых умолчаний

Shorty(Ale Chapa) Manskiy
12.12.2016
18:37:25
Чего тут левого, не знаешь что есть инициализация?

Roman
12.12.2016
18:39:35
В Го роль объектов с полями выполняют структуры. И это правильно.

Google
Phil
12.12.2016
18:40:11
Чего тут левого, не знаешь что есть инициализация?
знаю, но вопроса все равно не понял

Roman
12.12.2016
18:40:40
Все структуры в Го инициализируются значениями по умолчанию, которые восходят к базовым типам.

Метода по-умолчанию инициализации конструктора, как в Джаве нет. Но можно написать его самому и вызывать при создании экземпляра структуры (класса в Джаве)

Shorty(Ale Chapa) Manskiy
12.12.2016
18:44:26
Тут все слоупоки?

Roman
12.12.2016
18:45:11
Ты не получил ответ на свой вопрос?

Shorty(Ale Chapa) Manskiy
12.12.2016
18:49:37
"метода по умолчанию инициализации конструктора" - что это?

Roman
12.12.2016
18:53:22
Если не указан метод конструктора, то Джава создает его по-умолчанию автоматически. Го никаких методов автоматически не создает.

Phil
12.12.2016
18:57:00
В го вообще нет конструктора. Ни по умолчанию, ни без. Для инициализации значений надо явно вызвать каеой-нибудь метод

Shorty(Ale Chapa) Manskiy
12.12.2016
19:02:18
Пиздец, типа пришел долбаеб из явы, и сейчас я его научу?

Думаю сейчас возможен срач, но у меня 4% индикатор заряда показывает((

Google
Phil
12.12.2016
21:23:11
именованный конструктор выходит?
Нет. Нет конструктора. Слово даже такое забудь. Вот кстати Евгений выше бест практикс в плейграунде показал

Alexey
13.12.2016
05:27:56
https://golang.org/doc/effective_go.html#composite_literals

Subbotin
13.12.2016
11:04:50
вопрос про фреймворк echo: допустим я хочу свою собственную мидлварь, которая будет проверять токен и для валидного токена передавать внутрь функции юзернейм. менять набор входных параметров функции хэндлера я не могу. тоесть надо положить куда-то в контекст. где у него штатное место для этого? в упор не вижу

а чето я протупил. надо сделать свой контекст

Denis
13.12.2016
12:18:26
Тебе просто вниз нужно передать значение?

c.Set("key", value)

Value = c.Get("key").(type)

Первое делает мидлварь

Второе роуты или мидлвари ниже

Viktor
13.12.2016
12:24:08
посоны, такое дело... есть сторонний код на который я не могу повлиять никак, предположим func x() { for 1 { // ... } } есть мой код func y() { x(); } go y(); вопрос - как принудительно стопнуть горутину y учитывая то, что "в текущий момент времени" она висит в ожидании завершения работы функции x()?

чот я гуглил, спрашивал, решения так и не нашел...

Subbotin
13.12.2016
12:26:33
c.Set("key", value)
спасибо. чё-то я с разбегу его не нашёл

corpix
13.12.2016
12:26:37
Если поток выполнения заблокирован в x() то насколько мне известно - никак

Viktor
13.12.2016
12:27:54
Если поток выполнения заблокирован в x() то насколько мне известно - никак
ну, на сколько известно мне - никак. но я не особо хорошо знаю особенности работы горутин, поэтому и спрашиваю. ответ искал очень долго - ничего не нашел...

corpix
13.12.2016
12:29:43
ну, на сколько известно мне - никак. но я не особо хорошо знаю особенности работы горутин, поэтому и спрашиваю. ответ искал очень долго - ничего не нашел...
Я тоже не сказал бы что идеально знаю эту тему, но этот вопрос часто задают на конференциях и все ответы, что мне доводилось слышать - никак :)

Roman
13.12.2016
12:31:45
А что в этом плохого?

Viktor
13.12.2016
12:32:56
я пытался запилить свое мини-приложение на го дабы подтянуть скилл, а оно зависит от одной библиотеки, ну а эта библиотечка работает с сетью, и судя по всему - все повисает в ожидании conn.Read(), и при хреновом соединении с интернетом (не важно на какой стороне) - всё может повиснуть, т.к. у Read нет таймаута.

corpix
13.12.2016
12:34:26
А что в этом плохого?
Плохо то что такой возможности нет :) Но у этой монеты две стороны, полагаю что если бы такая возможность имела место то рантайм был медленнее и/или сложнее.

Viktor
13.12.2016
12:34:27
ну а в целом это плохо потому-что у тебя может быть очередь каких-то тасков, а таски могут выполняться, скажем, от секунды до часу, но результат работы таска тебе уже не важен через минуту, и в общем-то логичнее стопнуть всё, что работает больше определенного времени

Google
Roman
13.12.2016
12:34:39
Ну я так и думал. Если у тебя будет 100 тысяч клиентов в горутинах, то вме нормально.

Denis
13.12.2016
12:35:00
Это делается через пакет context

Но твоя очередь должна уметь работать с ним

И отменять выполнение тасков

Roman
13.12.2016
12:35:30
Открой библиотеку, добавь таймаут. Или найди другую библиотеку.

Viktor
13.12.2016
12:35:59
Quet
13.12.2016
12:36:06
таймаут не в рид, а в создание сокета

Viktor
13.12.2016
12:36:32
дык сокет создается нормально

ну и само собой там таймаут указан, но он влияет только на таймаут диала

Viktor
13.12.2016
12:40:05
SetReadDeadline например
а вот за это огромное спасибо! :)

Denis
13.12.2016
12:42:15
на тему отмены выполнения тасков http://dahernan.github.io/2015/02/04/context-and-cancellation-of-goroutines/

Anton
13.12.2016
17:28:48
Здравствуйте, я думаю что это вопрос глупыq, но есть ли возможность того что компилятор go хранит в памяти прошлую версию кода? я поправил ошибку - но это не помогло он всё равно ссылается на переменную, которой даже нету в этой строчке(и вообще ее нету в пакете). Единственное, что он заметил, так это то, что я изменил строчки удалив одну функцию - и пишет мне об этом. Как можно вылечить это?

Phil
13.12.2016
17:29:37
он может просто не компилирует?

Anton
13.12.2016
17:30:38
до этого компилировал

Morran
13.12.2016
17:30:47
Файл сохранил?

Anton
13.12.2016
17:30:50
да

решил проблему

глупость моя

Google
Morran
13.12.2016
17:38:06
Определённо

Lev
13.12.2016
17:38:23
зато авка норм)

Roman
13.12.2016
17:46:48
Расскажи как решил проблему собственной глупости. Мне тоже актуально.

Morran
13.12.2016
17:52:23
Phil
13.12.2016
21:21:38
Что-то меня гугль забанил. А можно в Go красиво тернарный оператор сделать каким-нибудь односрочником?

Мне в презентации надо и строки сократить, и понятным код оставить.

if i&1 != 0 { keytag += int(b) } else { keytag += int(b) << 8 }

Denis
13.12.2016
21:28:40
keytag += map[bool]int{true: int(b), false: int(b) << 8} [i&1 != 0]

Admin
ERROR: S client not available

Denis
13.12.2016
21:28:45
:)

Viktor
13.12.2016
21:29:06
жесть о_О

Phil
13.12.2016
21:30:12
Roman
13.12.2016
21:30:44
Агонь! Расскажи теперь как оно работает :)

Denis
13.12.2016
21:33:38
https://play.golang.org/p/TkBGTGxYHm тут и рассказывать нечего, инлайн мап с true и false, и условием в индексе

keytag += int(b) if i&1 != 0 { keytag += int(b) << 8 - int(b)}

можно так попробовать

Roman
13.12.2016
21:36:52
Вот это как работает? string{true: "yes", false: "no"}

Denis
13.12.2016
21:37:13
ключ булевое значение

Phil
13.12.2016
21:37:24
ну это уже изврат. ладно, код в презентахе это вообще моветон. зато узнал смешное прикольное решение с map :)

Denis
13.12.2016
21:38:17
ну да, никто так делать не будет, можно твое условие просто в одну строку написать, мб подойдет

Google
Denis
13.12.2016
21:38:23
либо на псевдокод заменить

Phil
13.12.2016
21:41:05
Ну весь код выглядит примерно так https://play.golang.org/p/gdVbFmH8tu я хотел комментарии вставить, но уже некуда

Roman
13.12.2016
21:42:27
ключ булевое значение
Ааа, значения тупо две записи по ключу true и false.

Phil
13.12.2016
21:43:03
Ну весь код выглядит примерно так https://play.golang.org/p/gdVbFmH8tu я хотел комментарии вставить, но уже некуда
1. С хешем можно короче. Специально оставлено более универсально 2. А вот с циклом с append() не уверен...

Roman
13.12.2016
21:44:29
1. С хешем можно короче. Специально оставлено более универсально 2. А вот с циклом с append() не уверен...
ААА ты хочешь функцию шифрования обсфурцировать настолько что бы никто разобраться не мог :)

Denis
13.12.2016
21:50:10
в целях показа можно разбить код на мелкие функции и описать их, после в основной функции их дергать

Phil
13.12.2016
23:42:55
Я правильно понимаю, что в коде keytag += (keytag >> 16) & 0xFFFF вот это вот & 0xFFFF не делает вообще ничего? Ведь после сдвига keytag >> 16 там слева и так нули

keytag пусть будет uint32

Quet
13.12.2016
23:45:55
перестраховались. вдруг там не 32, а 64 бита?

Kirill
14.12.2016
01:17:20
у нас тут функциональщики есть?

Quet
14.12.2016
01:24:57
а что надо?

Kirill
14.12.2016
01:43:08
Проконсультироваться по синтаксису форка гошки

Мы туда кое-что тащим, но насколько это то, что нужно - вопрос

Quet
14.12.2016
01:45:01
а есть живые форки такие? был oden, но сдох вроде

Kirill
14.12.2016
01:45:22
Есть, это мы

Quet
14.12.2016
01:45:36
что тащите туда?

Kirill
14.12.2016
01:46:15
Монады люди просили

Υπερβορεία
14.12.2016
01:46:56
Монады люди просили
Трихомонады не так страшны

Quet
14.12.2016
01:47:11
для этого надо тайпклассы сначала втащить

а для этого генерики

Страница 331 из 1674