@gogolang

Страница 476 из 1630
Kirill
24.08.2017
23:38:44
я прям обратно в перле себя почуствовал
ну - я в начале изучения гошки думал, что тут всё заранее круто

я был очень наивен

Daniel
24.08.2017
23:39:05
я как раз не думал ничего такого

но вот это просто сюрприз

Google
Kirill
24.08.2017
23:39:18
в перле как-то не питаешь надежды ни на что

в своё время сюрпризом было увидеть в top20 ни одной своей функции

Daniel
24.08.2017
23:40:50
это как раз совершенно не сюрприз

я ни в одном языке своего там обычно не вижу

Kirill
24.08.2017
23:41:18
то тебе рантайм, то ещё какая-то дичь из stdlib, то какая-то внутренняя функция fasthttp

я тогда написал сначала top10, а там один runtime да stdlib. думал, что я как-то не так запустил и он не показывает мой код в принципе

ан нет, смотришь дальше - находишь что-то своё. но настолько незначительно, что думаешь - какого хрена я должен использовать встроенные типы, когда всё, что работает с приемлемой скоростью - структурки да unsafe?

но, к сожалению, ничего лучше гошки я так и не видел.

Michael
25.08.2017
05:19:02
будет добавлено в воскресный доклад, однозначно
про замыкание и scope в effective go есть для Go так делать вполне нормально и если много defer-ов будет, то performance просядет

оф доки Go реально хороши

Daniel
25.08.2017
07:18:38
Про перворманс - немного сказки

Andrew
25.08.2017
07:23:22
@twentydraft думаю pinned message можно убрать.

Vadiimmm:-)))
25.08.2017
07:33:04
парни, подскажите например есть число byte 32, как его сделать string "32"?

Google
Michael
25.08.2017
07:41:57
Про перворманс - немного сказки
поэтому там впереди слово "много"

Ivan
25.08.2017
08:08:00
А мне тут странного хочется. prefix_scan по map[string]string возможно?

Ivan
25.08.2017
08:10:25
это то да

Mush
25.08.2017
08:10:59
Ivan
25.08.2017
08:11:08
во! точно

Mush
25.08.2017
08:11:09
точнее в надмапу

Alexander
25.08.2017
10:41:12
Guys, а тут про вакансии постить можно? Или лучше в какой-то специфичный чатик про который я не в курсе?

Daniel
25.08.2017
10:42:49
https://t.me/golangjob

Alexander
25.08.2017
10:50:45
как подставить в качестве аргумента функции результат, возвращённый другой функцией, если другая возвращает больше одного значения?

Alexander
25.08.2017
10:53:16
Через промежуточные переменные.
вот гемор :( Все данные с формы загонять в переменные?

Alexander
25.08.2017
10:57:26
Юзай struct
а в структуру тоже через переменные загонять?

Andrew
25.08.2017
10:59:37
а в структуру тоже через переменные загонять?
Заполняешь структуру своими данными формы и записываешь её в переменную. Затем подаёшь переменную на вход след. функции.

Kirill
25.08.2017
11:13:12
https://pbs.twimg.com/media/B3Fvg-sCYAAkLSV.jpg тоже не очень

Daniel
25.08.2017
11:14:45
это довольно старая картинка, на самом деле

Alexander
25.08.2017
11:16:16
Google
Kirill
25.08.2017
11:28:57
это довольно старая картинка, на самом деле
Но все успели забыть и поржали)

Alexander
25.08.2017
12:06:28
пробежаться по структуре и выявить незаполненные поля - задача нетривиальная, как я понимаю?

Kirill
25.08.2017
12:10:11
Более того, большая часть будет заполнена *zero ещё при аллокации

Alexander
25.08.2017
12:12:24
где мой старый добрый !empty() ... ?

Ilya
25.08.2017
12:15:16
где мой старый добрый !empty() ... ?
любишь обмазываться несвежим похапе?

Kirill
25.08.2017
12:15:30
где мой старый добрый !empty() ... ?
Там где empty(0.000000000001)// -> true

Alexander
25.08.2017
12:16:19
ну кто то сюда пришёл с С и java, ктото с пхп

Aleksandr
25.08.2017
12:16:30
где мой старый добрый !empty() ... ?
не приджумывай проблем. empty имеет критерии пустоты. тебе нужно сформулировать их для своей структуры и написать несколько строк

Alexander
25.08.2017
12:16:33
не всем тут рады?

Kirill
25.08.2017
12:16:34
Я уже давно с пхп ушёл

А с сей не ухожу, таки

Kirill
25.08.2017
12:17:26
не всем тут рады?
Мы все тут тролли

Ну - есть ещё немного HR'ов

Kirill
25.08.2017
12:17:45
Там где empty(0.000000000001)// -> true
Неа) так не работает.

Aleksandr
25.08.2017
12:17:59
Мы все тут тролли
не "мы", не "тут", а "все" и "везде") в инетах

Kirill
25.08.2017
12:18:16
Неа) так не работает.
Поздравляю с фиксом.

Ilya
25.08.2017
12:18:20
а я на сях кодил в понедельник. после 15 лет их отсутствия в моей жизне.

Ilya
25.08.2017
12:18:53
постгес в сях это пиздец.

Google
Kirill
25.08.2017
12:19:29
А ты говорил об этом Бартунову?

Ilya
25.08.2017
12:19:40
когда строковый код ошибке получить надо как то через задний проход указав функции флажок

да я про древнюю клиентскую либу

Kirill
25.08.2017
12:20:03
Ты бы ещё нашёл самый первый коммит гошки и говорил бы - пиздец, язык не работает, нахера релизили вообще, ещё и коммит в восьмидесятых сделан, тогда же гита не было, идиоты

Ilya
25.08.2017
12:22:50
а. еще в сях надо знать у какой говняшки делать деаллок, а какую эта клиентская либа заодно с резалтом подгребет

Admin
ERROR: S client not available

Ilya
25.08.2017
12:22:53
фу

Мерлин
25.08.2017
12:22:53
пробежаться по структуре и выявить незаполненные поля - задача нетривиальная, как я понимаю?
Несколько подходов 1. Попробуй заменить структуру на функциональные параметры, если это возможно 2. Попробуй использовать указатели вместо значений внутри структуры

Alexander
25.08.2017
12:45:52
func empty(v reflect.Value) bool { switch v.Kind() { case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return v.Int() == 0 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: return v.Uint() == 0 case reflect.String: return v.String() == "" case reflect.Ptr, reflect.Slice, reflect.Map, reflect.Interface, reflect.Chan: return v.IsNil() case reflect.Bool: return !v.Bool() } return false }

чёт никто не кидается гнилыми помидорами )

Илья
25.08.2017
12:48:09
https://golang.org/pkg/reflect/#Zero

можно и с этой стороны зайти

Vadiimmm:-)))
25.08.2017
12:49:50
Парни есть последовательность байт 12, 13, 23, 25 нужно сделать json {"0":12, "1": 13, "2": 23, "3": 25} сделал так пока: func ToBinJson(rc []byte) io.Reader { var buffStr string buff := bytes.NewBufferString(buffStr) buff.WriteString("{") for i := 0; i < len(rc); i++ { buff.Write([]byte("\"")) buff.WriteString(strconv.Itoa(i)) buff.Write([]byte("\"")) buff.Write([]byte(": ")) buff.WriteString(fmt.Sprintf("%v", rc[i])) if i < len(rc)-1 { buff.Write([]byte(", ")) } } buff.WriteString("}") return buff } можно ли лучше сделать?

Илья
25.08.2017
12:51:54
"\"" чтобы так не писать можно использовать `, т.е. "`

лучше чего нужно сделать?

buff.Write([]byte("\"")) buff.Write([]byte(": ")) это можно в одну инструкция записать :)

Vadiimmm:-)))
25.08.2017
12:53:19
ну это да, я из стринга собираю json - мне кажется это жесть же

anton
25.08.2017
12:53:54
конечно жесть..

Google
anton
25.08.2017
12:54:09
проще в мапу а потом json.Marshal

Илья
25.08.2017
12:54:30
если важна производительность, то твоё решение лучше всего :)

если лень писать такое, то map

Илья
25.08.2017
12:55:09
отчегож

Aleksandr
25.08.2017
12:56:30
шутите?? ?
вообще все внутренности го сделаны максимально низкоуровнево, поэтому такой вариант вполне концептуально подходит) зачем обмазываться маршаллерами с рефлексией, если можно тупо строку склеить. тем более простой варианть

Илья
25.08.2017
12:58:52
var buffStr string buff := bytes.NewBufferString(buffStr) - это вы таким образом хотите buff := bytes.Buffer{} создать?

Vasily Romanov
25.08.2017
12:59:27
А зачем там строковой бкфер? МОжно прямо байтовый сразу

Мерлин
25.08.2017
13:00:17
вообще все внутренности го сделаны максимально низкоуровнево, поэтому такой вариант вполне концептуально подходит) зачем обмазываться маршаллерами с рефлексией, если можно тупо строку склеить. тем более простой варианть
Это экономия на спичках, причём эту штуку надо хорошенько протестировать, потому что именно в таких костылях больше всего неочевидной пакости прячется

Aleksandr
25.08.2017
13:01:42
маршаллер писать для ланного случая сложнее

Vasily Romanov
25.08.2017
13:02:07
Это не так выгодно по памяти

Aleksandr
25.08.2017
13:02:40
Это не так выгодно по памяти
это правда. зато безошибочно

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