@proGO

Страница 1186 из 1674
Aleksandr
28.01.2018
14:19:51
printf медленно

Aleksandr
28.01.2018
14:20:50
Во, хорошая, мысль, пойду гуглить.
https://golang.org/pkg/math/rand/#Int31n

Google
Alex
28.01.2018
14:22:27
При условии, что rand - int.

Michael
28.01.2018
14:24:13
Допустим, получил в инте несколько миллионов, а нужно примерно из этого числа последние 5-6 знаков то есть пару десятков тыщ. А, кажись понял, можно наверное Printf заюзать.
может это не несколько миллионов, а номера телефонов в каком-либо формате, и это не целое, а строка, и можно просто обойтись слайсом?

Nathan
28.01.2018
14:26:23
кто нить разбираеться в debug/pprof/heap ?

почему heap растёт а память нет?

Michael
28.01.2018
14:27:03
Не, эт мне сгенерить нуно по быстрому.
а, вот тебе trueRandom := 123456 // често кинул кубики

Marlik
28.01.2018
14:27:48
Alex
28.01.2018
14:28:29
Не, эт мне сгенерить нуно по быстрому.
Если нужно сгенерить, то почему не использовать тот же rand.Intn(100000)?

Marlik
28.01.2018
14:30:23
Я правильно понимаю, что например используя горутины, по одной на каждого пользователя в контексте вебсервера мне sync.Mutex для структур не нужен?

Google
Александр
28.01.2018
15:50:35
Я правильно понимаю, что например используя горутины, по одной на каждого пользователя в контексте вебсервера мне sync.Mutex для структур не нужен?
sync.Mutex принудительно создает "очереди" из желающих поюзать поле, пока один не выйдет другой не зайдет

это спасает от странных ситуаций, когда оба хотят поправить/прочитать

но замедляет производительность

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

вот бы в очередь "магический" и запихнул бы обоих

Александр
28.01.2018
16:13:17
вы не поняли

go race для этого есть
я имел введу зачем нам надо ставить вручную локи, когда "на уровне ядра" можно было бы за нас их проставить ?

что бы меньше стреляли в ноги

Александр
28.01.2018
16:20:08
он же паникует когда такой встречается? на основании чего?

почему бы вместо паники не сделать обработку

Mykyta
28.01.2018
16:21:38
как вы себе это представляете? "это как" [2]
Та элементарно, можно все выполнять в один поток, ну может eventloop прикрутить, либо можно в рантайме вместо параллелизма сделать выполнение тоже в одном потоке, но для создания видимости параллельного выполнения шустренько переключать потоки выполнения

Mykyta
28.01.2018
16:24:41
Так это и есть приславутый гил в питоне
Да вы что, правда, во блин ??

Arch
28.01.2018
16:24:45
Только переключение контекста между потоками требует времени

Да вы что, правда, во блин ??
Ааа, цэ был тролинг)))) ок)

Google
Никита
28.01.2018
16:57:52
Есть какой то актуальный подробный справочник по языку? Кроме тура на сайте

Либо тура достаточно? ?

Человек
28.01.2018
17:04:26
Здравствуйте. Я чет приколов Golang не понимаю. https://ru.stackoverflow.com/questions/776481/%D0%9E%D0%B4%D0%BD%D0%BE-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F-%D0%BF%D0%B0%D1%80%D1%81%D0%B8%D1%82-%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B5-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F-%D0%BD%D0%B5-%D0%BF%D0%B0%D1%80%D1%81%D0%B8%D1%82 тут задал вопрос, ответа пока что не получил. Или я regexp не тот юзаю, хотя позавчера он у меня отлично работал... или же ещё в чем-то подвох

Sergey
28.01.2018
17:07:18
Либо тура достаточно? ?
Чтобы писать код достаточно. Но там кучу всего надо чтобы нормально писать. Посмотри книжки всякие и о кодогенерации вообще в туре ничего нету

Доклады пайка отличные

عاصم بن حارث
28.01.2018
18:21:11
Building Web Applications and Microservices for the Cloud with Go and React

none
28.01.2018
18:39:52
ребята подскажите, есть проблемма https://play.golang.org/p/k3ctb_vtpbo

если делаю тоже самое на локальной машине расходжение во времени 3 часа как такое может быть ?

none
28.01.2018
18:41:28
да но почему когда приобразуется int64 в timeUnix происходит сдвиг>

я же не локальное время преобрзую и фиксированную int64



me
28.01.2018
18:46:03
что за шрифт? input?

none
28.01.2018
18:46:10
iosevka

me
28.01.2018
18:46:22
а, точно

Google
none
28.01.2018
18:48:15
почему го из int64 делает время со смешением?

anton
28.01.2018
18:48:20
ну для ф-ии func Unix(sec int64, nsec int64) Time написано же: Unix returns the local Time corresponding to the given Unix time

none
28.01.2018
18:48:40
лол

anton
28.01.2018
18:48:50
в одном случае у тебя local Time, в другом In the absence of a time zone indicator, Parse returns a time in UTC.

none
28.01.2018
18:48:54
так значит надо искать как преобразовывать с игнорирование локалтайма

anton
28.01.2018
18:51:47
так значит надо искать как преобразовывать с игнорирование локалтайма
а попробуй для твоего stringFromUnixTime в конце сделать так: utcFromUnix := timeUnix.UTC() return utcFromUnix.Format(layout) вместо того, что ты там сейчас возвращаешь

Admin
ERROR: S client not available

none
28.01.2018
18:52:05
ок спасибо сейчас чекну

Alexey
28.01.2018
18:58:09
мм. не читал. спс

Человек
28.01.2018
19:04:47
Не в этом дело, добавил обработку ошибок, тело возвращаеться отлично, да и wireshark отдает body отлично. Так что дело в чем-то другом.

зачем ты опускаешь проверку ошибок, а потом спрашиваешь в чем проблема?

anton
28.01.2018
19:14:18
Не в этом дело, добавил обработку ошибок, тело возвращаеться отлично, да и wireshark отдает body отлично. Так что дело в чем-то другом.
чудес не бывает :) ну отлоггируй кейс, когда у тебя ничего не находится. сдампи куда-нибудь тело и потом глазами посмотри

Marlik
29.01.2018
03:11:53
Нужен совет, пытаюсь в функции получить строку из БД посредством QueryRow(). Функция возвращает два типа ошибок, строка не найдена(для меня это не ошибка, это значит юзера нет в базе и его туды нужно заинсёртить) и общая стандартная ошибка. Пример: switch { case err == sql.ErrNoRows: log.Fatal(err) case err != nil: log.Fatal(err) } return p, err } Вот тут что-то придумать нужно case err == sql.ErrNoRows: Или может обработать как-то ошибку? Кто-то может сталкивался?

Aleksandr
29.01.2018
03:14:30
с чем сталкивался?

зачем тебе фатал, если это не ошибка?

Marlik
29.01.2018
03:16:02
Ну вот пока пробую так, если строки не найдено, возвращаю return p, err, щас на сервер закину, проверю.

Aleksandr
29.01.2018
03:16:51
вопрос то в чем не пойму?

Marlik
29.01.2018
03:17:26
Не, не катит. 2018/01/29 06:16:23 sql: no rows in result set Вопрос вверху.

Aleksandr
29.01.2018
03:18:19
я не вижу вопроса. вижу размышления на тему. код покажи весь

Marlik
29.01.2018
03:19:24
А, вот что, обрабатываю так user, err := ReturnUser(db, ChatID) if err != nil { log.Fatal(err) } Соответственно ошибка то всё равно есть, вот и фатал ловлю. А на ошибки не проверять, плохая практика.

Google
Aleksandr
29.01.2018
03:20:17
покажи весь код. ReturnUser в том числе, и что ты дальше делаешь с user

Marlik
29.01.2018
03:22:14
В общих чертах, читаю из БД, проверяю на ошибки. switch { case err == sql.ErrNoRows: return p, err case err != nil: log.Fatal(err) } return p, err } Тут, в другой функции, проверяю на ошибки user, err := ReturnUser(db, ChatID) if err != nil { log.Fatal(err) } Ошибка всё равно будет, что строки нет, что просто ошибка чтения из БД. Вот и думаю как обойти.

Aleksandr
29.01.2018
03:23:48
друг, я тебя прошу, дай мне тебе помочь. не кидай огрызки кода - кинь полностью весь заучаствованный код - запрос, возврат результата, использование результата

я тебе уже даже написал что конкретно хочу получить от тебя. ты все равно куски вырываешь, да не те

Marlik
29.01.2018
03:27:08
друг, я тебя прошу, дай мне тебе помочь. не кидай огрызки кода - кинь полностью весь заучаствованный код - запрос, возврат результата, использование результата
Я прост не понимаю что ещё нужно?))) Остальное только усложнит. Ну допустим так: func ReturnUser(db *sql.DB, ChatID int64) (p *DATA, err error) { p = new(DATA) err = db.QueryRow("...") switch { case err == sql.ErrNoRows: return p, err case err != nil: log.Fatal(err) } return p, err } Проверяю user, err := ReturnUser(db, ChatID) if err != nil { log.Fatal(err) }

Вот при проверке, всё равно будет ошибка, потому что err по любому вернуть нужно.

Как-то вот ошибку мне кажется обработать нужно, а как пока не знаю, опыта нет.

Aleksandr
29.01.2018
03:29:50
func ReturnUser(db *sql.DB, ChatID int64) (p *DATA, err error) { p = new(DATA) err = db.QueryRow("...") return p, err } user, err := ReturnUser(db, ChatID) if err != nil { if err == sql.ErrNoRows { //insert } else { // обработать остальные ошибки } } else { // обработать user }

Marlik
29.01.2018
03:31:09
Вот, тут if err == sql.ErrNoRows будет ошибка, ибо не определена sql.ErrNoRows. Ладно, щас ещё поковыряюсь, может придумаю как.

Aleksandr
29.01.2018
03:41:42
что значит не определена? это встроенная ошибка

если пакет импортировал, то она определена

Marlik
29.01.2018
03:46:19
если пакет импортировал, то она определена
Странно конечно го работает))) Получается что в db.go лежит функция ReturnUser() в ней всё импортировано, а вызываю её, из app.go где не было импорта sql, вот заимпортил в app.go и кажется ошибок нет. Но что будет при компиляции? Скомпилируется импорт в двух пакетах?

Aleksandr
29.01.2018
03:47:07
Разные контексты

Используй иде - оно тебе подсветить ошибки

Marlik
29.01.2018
03:47:55
Используй иде - оно тебе подсветить ошибки
Без ИДЕ, я бы вообще ни одной строчки не написал)))

Aleksandr
29.01.2018
03:48:57
Там где ты импортировал database/sql там sql = database/sql. В остальных местах sql = sql, а такого пакета нет

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