Anonymous
engelbart
это то да
Anonymous
engelbart
во! точно
Anonymous
точнее в надмапу
Alex
Guys, а тут про вакансии постить можно? Или лучше в какой-то специфичный чатик про который я не в курсе?
Daniel
https://t.me/golangjob
Alexander
как подставить в качестве аргумента функции результат, возвращённый другой функцией, если другая возвращает больше одного значения?
Anonymous
Anonymous
Kirill
Alexander
Юзай struct
а в структуру тоже через переменные загонять?
Kirill
https://pbs.twimg.com/media/B3Fvg-sCYAAkLSV.jpg
тоже не очень
Daniel
это довольно старая картинка, на самом деле
Alex
Kirill
Alexander
пробежаться по структуре и выявить незаполненные поля - задача нетривиальная, как я понимаю?
Kirill
Kirill
Более того, большая часть будет заполнена *zero ещё при аллокации
Alexander
где мой старый добрый !empty() ... 😞
Ilya
Kirill
Alexander
ну кто то сюда пришёл с С и java, ктото с пхп
Alexander
не всем тут рады?
Kirill
Я уже давно с пхп ушёл
Kirill
А с сей не ухожу, таки
Kirill
Ну - есть ещё немного HR'ов
Anonymous
Aleksandr
Мы все тут тролли
не "мы", не "тут", а "все" и "везде") в инетах
Ilya
а я на сях кодил в понедельник. после 15 лет их отсутствия в моей жизне.
Kirill
Ilya
постгес в сях это пиздец.
Kirill
А ты говорил об этом Бартунову?
Ilya
когда строковый код ошибке получить надо как то через задний проход указав функции флажок
Ilya
да я про древнюю клиентскую либу
Kirill
Kirill
Ты бы ещё нашёл самый первый коммит гошки и говорил бы - пиздец, язык не работает, нахера релизили вообще, ещё и коммит в восьмидесятых сделан, тогда же гита не было, идиоты
Ilya
а. еще в сях надо знать у какой говняшки делать деаллок, а какую эта клиентская либа заодно с резалтом подгребет
Ilya
фу
Kirill
Мерль
Kirill
Kirill
Alexander
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
}
Alexander
чёт никто не кидается гнилыми помидорами )
Илья
https://golang.org/pkg/reflect/#Zero
Илья
можно и с этой стороны зайти
⏺ Vаdim
Парни есть последовательность байт 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
}
можно ли лучше сделать?
Илья
"\"" чтобы так не писать можно использовать `, т.е. "`
Илья
лучше чего нужно сделать?
Илья
buff.Write([]byte("\""))
buff.Write([]byte(": ")) это можно в одну инструкция записать :)
⏺ Vаdim
ну это да, я из стринга собираю json - мне кажется это жесть же
Anton
конечно жесть..
Anton
проще в мапу
а потом json.Marshal
Илья
если важна производительность, то твоё решение лучше всего :)
Илья
если лень писать такое, то map
⏺ Vаdim
Илья
отчегож
Aleksandr
шутите?? 😂
вообще все внутренности го сделаны максимально низкоуровнево, поэтому такой вариант вполне концептуально подходит) зачем обмазываться маршаллерами с рефлексией, если можно тупо строку склеить. тем более простой варианть
Илья
var buffStr string
buff := bytes.NewBufferString(buffStr) - это вы таким образом хотите buff := bytes.Buffer{} создать?
Мерль
Vasily
А зачем там строковой бкфер? МОжно прямо байтовый сразу
Мерль
Aleksandr
Aleksandr
маршаллер писать для ланного случая сложнее
Vasily
Это не так выгодно по памяти
Anton
кто не ленивый? можете бенчмаркнуть? а то я с телефона :(
Vasily
Потому что будет и промежуточный слайс, и результат
В вышеприведённом случае пишетя сразу в результат
Vasily
Если безошибочно - лучше json.Marshal
Vasily
Если делать что-то руками - то хотя бы пользу по скорости иметь от этого
Aleksandr
Мерль