
GoodMoodDealler
21.06.2018
12:14:54
Смотрю сейчас на курсейре курс и они постоянно указателями обращаются

Jentry
21.06.2018
12:15:16
Что значит напрямую? По значению можно небольшие структуры передавать, это также гарантия, что они не будут изменены

GoodMoodDealler
21.06.2018
12:15:58

Jentry
21.06.2018
12:17:24
Выделяем память, кладем, сохраняем в переменную указатель, это много сложее и создает нагрузку на GC. Избегай указателей где этого можно

Google

Vadim
21.06.2018
12:18:01
Почему мы не можем всегда ссылаться на адрес структуры
Когда ты шлешь в функцию структуру или делаешь метод структуры, если ты сделал первый вариант при вызове метода/функции туда будет копироваться вся структура. А если ты записал в переменную аддрес структуры, в метод/функцию будет слаться этот адрес и после будет происходить взаимодействие с полями исходной структуры.

GoodMoodDealler
21.06.2018
12:18:57

Jentry
21.06.2018
12:19:23
В го не очень любят shred state и стараются этого избегать где можно, так как это способствует трудноуловимым багам с гонками в условиях конкурентности, которую мы любим

GoodMoodDealler
21.06.2018
12:20:29

Vadim
21.06.2018
12:21:01
С поинтерами сложнее работать gc. Также, зачем хранить ещё адрес структуры, если ты к ней будешь обращаться только локально.

GoodMoodDealler
21.06.2018
12:21:45
type structName struct {
Name string
ID int
}

Jentry
21.06.2018
12:22:31

GoodMoodDealler
21.06.2018
12:22:40

Vadim
21.06.2018
12:22:49
Обращение к структуре без поинтера: 1. Нашел переменную 2. Делаешь грязные дела Обращение к структуре через поинтер: 1.Обратился к переменой, которая хранит адрес. 2. Переходишь по адресу 3. Делаешь грязные дела.

GoodMoodDealler
21.06.2018
12:22:55

Jentry
21.06.2018
12:23:44

GoodMoodDealler
21.06.2018
12:23:48
Просто я хочу на пальцах понять, чтобы быть уверенным

Google

GoodMoodDealler
21.06.2018
12:24:13
Кроме офф документации

Jentry
21.06.2018
12:25:32
Кроме офф документации
Хз, я начинал с ассемблера, может тебе стоит пройти экскурс ассемблер-Си перед го, тогда ты точно начнешь понимать цену работы с кучей

Vladimir
21.06.2018
12:26:02
смотри на примере твоей структуры:
если ты передашь структуру как есть в функцию - считай что это будет копия ее
изменишь в рамках функции - ничего не произойдет с основной
если в структуре указатели - то изменится значение и в оригинальной. Если указатель на структуру - также изменится значение в оригинальной
почитай про указатели в учебнике по Си
они точно такие же везде

GoodMoodDealler
21.06.2018
12:26:54

Vladimir
21.06.2018
12:27:03
а в чем вопрос?

GoodMoodDealler
21.06.2018
12:27:45
Вопрос был именно в указательном методе

Vladimir
21.06.2018
12:28:10
ну и?

GoodMoodDealler
21.06.2018
12:28:11
Спасибо)
ну и?
Да я не могу понять понял я или нет

Vladimir
21.06.2018
12:28:34
объясни как понял

GoodMoodDealler
21.06.2018
12:28:36
Сейчас на всякий почитаю еще
Ну обращение без указателя - работа с копией на стэке
Верно?
Это и безопаснее и быстрее как я понимаю

Google

Jentry
21.06.2018
12:30:07
Стек используется для передачи при вызове, далее снимается со стека и работается, не нужно говорить "работа с копией на стеке" - нет там никакой работы

Denis
21.06.2018
12:30:08

Jentry
21.06.2018
12:30:32
быстрее, если там десяток байт и входит в один регистр

Vadim
21.06.2018
12:30:41
Скорость зависит от размера структуры.

Denis
21.06.2018
12:32:02

Алексей
21.06.2018
12:32:13

GoodMoodDealler
21.06.2018
12:32:18
Как я понимаю так выгодно работать с небольшим количеством информации, верно?
Ладно, пойду читать сишную литературу

Алексей
21.06.2018
12:34:07
Вообще по указателю надо передавать только в двух случаях:
1) если надо изменить данные
2) если структура очень большая

Petr
21.06.2018
12:34:17

Artem
21.06.2018
12:39:01
Всем привет
http.DetectContentType(buffer)
для файла формата xlsx - возвращает application/zip
как еще можно проверить формат файла?

Aleksandr
21.06.2018
12:42:13
так правильно показывает

Artem
21.06.2018
12:44:31
а как проверить что это именно xlsx ?

Aleksandr
21.06.2018
12:44:39
по расширению

GoodMoodDealler
21.06.2018
12:49:56
Вроде elf называлась либа, которая тебе нужна

Vladimir
21.06.2018
12:52:16
скорее libmagick если про сишную либу говорить

GoodMoodDealler
21.06.2018
12:52:26

Google

GoodMoodDealler
21.06.2018
12:52:29
Она самая

Aleksandr
21.06.2018
12:53:14
Не только
как не только, если xlsx - это не формат, а расширение

GoodMoodDealler
21.06.2018
12:55:24
Крч есть проект на гитхабе
https://github.com/malice-plugins/fileinfo

Petr
21.06.2018
12:55:46
# cat /etc/mime.types |grep xlsx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx

Admin
ERROR: S client not available

GoodMoodDealler
21.06.2018
12:55:55
Он хорошо умеет инфу по файлу собирать
Покопайся в нем и найдёшь то что тебе нужно

Artem
21.06.2018
12:57:01
filepath.ext
принимает путь файла, у меня загрузка файла на сервер
хотелось бы проверять до фактической загрузки

GoodMoodDealler
21.06.2018
12:58:08

Artem
21.06.2018
12:58:46
спасибо, ща буду разбирать

Aleksandr
21.06.2018
12:58:55

GoodMoodDealler
21.06.2018
12:59:38

Иван
21.06.2018
13:00:35
https://github.com/h2non/filetype
xlsx - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
поддерживает судя по описанию

Artem
21.06.2018
13:02:24

Иван
21.06.2018
13:03:00
да, правда)

Alexandr
21.06.2018
13:04:31

meehalkoff✪
21.06.2018
13:41:25
Подскажите полное руководство по golang templates. Устал уже обрывками гуглить

Google

Daniel
21.06.2018
15:04:47
коллеги, а кто у нас тут есть из админов golang jobs?
надо обсудить

Димка
21.06.2018
15:06:45

Petr
21.06.2018
15:07:39

Daniel
21.06.2018
15:08:18
но я не предлагаю обсудить действия модератора

Евгений
21.06.2018
15:11:21
А есть отдельный чатик с вакансиями?

Daniel
21.06.2018
15:11:56
вот как раз он :)

Евгений
21.06.2018
15:13:06
О как.
Ну я тут вроде беспредела такого не замечал. Никого не защищаю и не выгораживаю.

Daniel
21.06.2018
15:13:47
там странная ситуация

Petr
21.06.2018
15:13:57

Александр
21.06.2018
15:22:31
меня тоже замели там :(

Kirill
21.06.2018
15:22:35

Александр
21.06.2018
15:22:52
не знаю почему, я только вакансию постил

Petr
21.06.2018
15:24:31
а чё там?
рандомные баны, даже админов банят ))