Maks
Ну я естественно не массив интерфейсов передавал а интерфейс. Потому что с массивами своя беда там)
Akim
нет, объявление
Я еще вот к чему пришел https://go.dev/play/p/deJEw_irHm1 Кажется что interface{} это уже ссылка
Илья
Я еще вот к чему пришел https://go.dev/play/p/deJEw_irHm1 Кажется что interface{} это уже ссылка
нет, просто разыменовал указатель и получил обратно интерфейс
Sharifzoda
Кто знает, как постоянно получать сообщения от почты?
Илья
почты? протокол IMAP
или SMTP, но я не помню можно ли через него получать почту
Sharifzoda
Нет, по imap протоколу
Sharifzoda
Получаю последнюю по индексу или список и т.д, но хочу как сервак постоянно получать, в реальном времени
Sharifzoda
Можете помочь?
Илья
Может другие подскажут, работал с почтой только на отправку
Sharifzoda
Аа, ок, спасибо за отзыв)
Akim
нет, просто разыменовал указатель и получил обратно интерфейс
Ух, до меня с трудом дошло что интерфейс это отдельный тип и он никак не связан с наследованием. Очень помог первый ответ. https://stackoverflow.com/questions/23148812/whats-the-meaning-of-interface
Илья
интерфейс внутри это указатель на твой тип и описание твоего типа
Akim
Ага, это такая сложная умная магическая структура
Akim
ООП языки мешают учить гошку :)
Илья
Спрашивай если что, поможем
Кіт ✙
ООП языки мешают учить гошку :)
ваще гадство согласен
Max
ООП языки мешают учить гошку :)
https://go.dev/doc/faq#Is_Go_an_object-oriented_language
kostyaBro
Можете помочь?
Тут канал со входящими возвращает либа, можешь посмотреть как устроено
kostyaBro
https://github.com/emersion/go-imap
👆БЛАТНОЙ ГРУБИЯН👆
kostyaBro
Спасибо большое
Subscribe есть, пробовал?
Илья
Осуждаем
Sharifzoda
Subscribe есть, пробовал?
Нет увы, вчера лишь познакомился с пакетом
👆БЛАТНОЙ ГРУБИЯН👆
Sharifzoda
Subscribe есть, пробовал?
А что за метод/функция?
Юрий
опять ты
Илья
легенда go get a job
kostyaBro
А что за метод/функция?
Открой ссылку да прочитай
Sharifzoda
Чел ну тут не Google
Ахаха, окей)
Юрий
легенда go get a job
а как же Сергей
Юрий
Сергей по-моему легенда любой конфы по го
kostyaBro
Спасибо
А сорт, она не вставилась там😂 "IMAP Commands - Atmail email experts - IMAP tutorial - What is IMAP?" https://www.atmail.com/blog/imap-commands/
Илья
Ушла эпоха...
Илья
@banofbot
Banof
🔫 @ramazan05 кикнут — вернуть этого пользователя можно только разбаном в настройках чата. За кик проголосовали: @illiadimura, @boborikin, Юрий, @jknotts, @palolem144 Информация по переезду из 🇺🇦 в 🇨🇦
👆БЛАТНОЙ ГРУБИЯН👆
Юрий
пук пук пук
Null
👣 Пишем поддерживаемый код модульного тестирования в Golang Эта статья посвящена ремонтопригодности кода модульного тестирования, не знаю, писали ли вы когда-нибудь модульный тест в spaghetti-style, который структурирован похожим образом. Честно говоря, я написал довольно много. func TestFoo(t *testing.T) { // test get resp, err := GET(blabalbal) assert.Nil(err) ... // test post resp, err = POST(blabalbal) assert.Nil(err) ... // test update resp, err = PUT(blabalbal) assert.Nil(err) ... } Большинство людей это пишут для удобства: для инициализации переменных и их повторного использования. Но когда код варианта использования слишком длинный, а единственный текст завершается неудачей, трудно найти конкретную причину, а ее поиск занимает много времени при отладке. ➡️ Читать дальше @Golang_google
Melbourne Channel
anyone knows what's the fastest way to "serialize" a golang byte array and transfer over the wire? faster than msgpack/json. faster than gob? no need to "serialize" as in... [][]byte <- or a way to quickly "pack" it for transfer. i'm using redis pub/sub transfer protocol so need a way to serialize with least mem alloc and fastest way. suggestions / feedback appreciated.
kostyaBro
what to serialize the bytes for transmission, I don't understand you. Just send them away by tcp
Melbourne Channel
what's tsp?
Melbourne Channel
https://github.com/alecthomas/go_serialization_benchmarks i've checked this but i was wondering what's the fastest way just to send [][]byte <- through redis pub/sub that's all. fastest / least mem alloc way
kostyaBro
Melbourne Channel
what to serialize the bytes for transmission, I don't understand you. Just send them away by tcp
yes but i needed the pub/sub feature. so i need to send through redis.
kostyaBro
yes but i needed the pub/sub feature. so i need to send through redis.
I don't understand why you can't just send bytes. That u want from serialization
Melbourne Channel
it's [][]byte <- bytes array
Melbourne Channel
in that case, how do u serialize [][]bytes array into []bytes? :)
Melbourne Channel
fastest and least mem alloc way :D
kostyaBro
U need to allocate memory 1 time and replace data
kostyaBro
Your data in the [][]byte in some places in the memory. If u want to replace data in one place, just use make and copy
Melbourne Channel
how do u serialize [][]bytes array into []bytes?
kostyaBro
.......
Melbourne Channel
this is how i do it. any guys with better, fastest or least mem alloc way func InterfaceToBytes(key interface{}) ([]byte, error) { var buf bytes.Buffer enc := gob.NewEncoder(&buf) err := enc.Encode(key) if err != nil { return nil, err } return buf.Bytes(), nil } func BytesToInterface(bts []byte, data interface{}) error { buf := bytes.NewBuffer(bts) dec := gob.NewDecoder(buf) err := dec.Decode(data) if err != nil { return err } return nil }
kostyaBro
Create bytes slice using make Use copy for each byte areay
Melbourne Channel
Create bytes slice using make Use copy for each byte areay
??? can u show the code for making [][]byte into []byte and reverse?
Melbourne Channel
[][]byte to []byte <- i'm looking for the fastest or least mem alloc way to do so. the one i've shown is using gob and i think can be faster.
Melbourne Channel
Ok , thanks
u hv solution?
kostyaBro
??? can u show the code for making [][]byte into []byte and reverse?
Νο. I can't now. And it is default syntax of golang. 1. Find sum of length of your [][]byte. 2. Use make for allocate expected capacity. 3. Use copy for replace bytes into new array
kostyaBro
Just rewrite this on go👆
Юра (Юрий Александрович)
[][]byte to []byte <- i'm looking for the fastest or least mem alloc way to do so. the one i've shown is using gob and i think can be faster.
The least mem alloc way is to calculate total size of data stored in [][]byte, then create []byte of required capacity
kostyaBro
1 alloc
Oleg
u hv solution?
I can’t give you a zero alloc options. I think that iteration over [][]byte and copy to result array is not that bad solution
Oleg
Example 1. Calculate length of your result slice 2. Make result slice 3. Iterate over origin slice and copy it’s parts into result