
jdc
11.07.2017
13:23:45

Kirill
11.07.2017
13:23:48

i
11.07.2017
13:24:52

Google

jdc
11.07.2017
13:25:15

i
11.07.2017
13:26:21
https://blog.golang.org/go-slices-usage-and-internals даже ещё лучше и конкретно про массивы и слайсы

Aleksandr
11.07.2017
13:31:52
s := d[:]

Kirill
11.07.2017
13:35:03
Ща запутаете друг друга. Слайс всегда существует на основе какого-то массива

Олег
11.07.2017
13:36:14
Можно через аппенд!!
https://play.golang.org/p/bnFsmYsRD3

Kirill
11.07.2017
13:37:09
Апенд добавляет элементы в слайс

Олег
11.07.2017
13:37:45

Kirill
11.07.2017
13:38:00
Есть copy

Олег
11.07.2017
13:39:39
https://play.golang.org/p/Bmg6K1JmRF
Да, copy лучше :)

Kirill
11.07.2017
13:39:49
Слайс всегда будет содержать ссылки на элементы массива, который лежит в основе.

Slava
11.07.2017
15:02:32
Одну ссылку на элемент и капасити в нём

Google

Aleksey
11.07.2017
15:13:52
Друзья, скиньте пример бест практис по написанию счетчика посещения страницы(hit counter), если это будет с драйвером postgresql , вообще шик

Michael
11.07.2017
15:25:23
i++
на всех платформах

Che
11.07.2017
15:28:13

Ashot
11.07.2017
15:28:46
двумерный массив?

Mike
11.07.2017
15:30:48
Вхат
Это массив ([]) массивов ([]) строк (string)
Писать свою структуру и в нее анмаршаллить
Привет типы
В твоих других языках тоже массивы массивов
Они просто неявные
А тут явные

Aleksey
11.07.2017
15:33:28

Mike
11.07.2017
15:34:28
interface{} или рекурентно парсить и создавать новые типы по ходу

Che
11.07.2017
15:34:31

Aleksey
11.07.2017
15:34:48

Mike
11.07.2017
15:35:12
Или не отправлять с апи слишком усложненные структуры
Произвольная вложенность редко нужна

i
11.07.2017
15:35:49
Есть 2 варианта, писать на другом языке с динамической типизацией или изначально знать все структуры данных которые тебе будут приходить и анмаршалить в их

Mike
11.07.2017
15:36:17
Вообще не надо решать задачи для которых язык не предназначен например

Google

Mike
11.07.2017
15:36:29
Конечно лол
Не на го тоже лол
Структура же поменяется

Aleksey
11.07.2017
15:38:26
Слайс же делать нужно, не? Он же резиновый

Che
11.07.2017
15:39:16
там под себя переделаешь)

Ashot
11.07.2017
15:39:52
Тебе надо сначала убить в себе говнокодера :(

Aleksey
11.07.2017
15:40:37

Ashot
11.07.2017
15:40:50
:(

Che
11.07.2017
15:40:52

Анатолий
11.07.2017
19:23:22
Парни, подскажите: разбил свой main.go на три файла, запускаю go run *.go, а он мне ошибку выдает странную:
D:\go\src\project>go run *.go
GetFileAttributesEx *.go: The filename, directory name, or volume label syntax is incorrect.

Aleksandr
11.07.2017
19:25:25
main.go запускай

Анатолий
11.07.2017
19:26:19
я же говорю, я его разделил на три файла, прописав в них один package, go run main.go ругается что не видит функции которые я вынес

Aleksandr
11.07.2017
19:27:20
выноси в другой пэкэдж. из main читать не будет насколько я понимаю
оставь main.go, остальное вынеси

Анатолий
11.07.2017
19:28:18
неуместно другой package создавать

Slava
11.07.2017
19:28:43
Go run принимает список файлов для компиляции
Указывай каждый или через звездочку

Aleksandr
11.07.2017
19:28:59

Admin
ERROR: S client not available

Анатолий
11.07.2017
19:30:06
хм, тоесть вообще весь свой проект вынести в другой package, а main.go оставить в package main?

Google

Анатолий
11.07.2017
19:30:21
Звучит логично впринципе
Но я точно помню, что во время моего прохождения туториала go run *.go работал, а сейчас перестал
Ну да, я понял, это работает не в cmd и ps, это работает в линуксовых терминалах
Надо передать список всех файлов и взлетит
go run $(gci *.go | select -exp name) вот так работает в powershell

corpix
11.07.2017
19:46:00

Анатолий
11.07.2017
19:48:08
@corpix я не понел
хотя нет, немного понел
да, ясно, интересно, спасибо за наводку

corpix
11.07.2017
19:49:30
Ну я вообще люблю все сущности в программе поделить на отдельные пекеджи. Типа есть отдельный пекедж, который описывает CLI приложения, отдельный для конфигурации и т.п.
Но все они внутри одного репозитория с приложением сложены

Анатолий
11.07.2017
19:50:10
ну да, я с тобой коллинеарен в этом желании, но у меня кли и мне что делить?)
единственный минус - для всех твоих пакетов нужна такая запускалка или надо хостить пакет внутри пакета
это не плохо вроде, но как-то странно
мне нравится как ты пишешь, я поизучаю твой гитхаб. не то чтобы я спрашиваю разрешения, просто уведомляю =)


corpix
11.07.2017
19:54:07
Зависит от твоей предметной области :)
Вот например в https://github.com/corpix/market-fetcher у меня следующая задача: затягивать данные с кучи криптовалютных бирж. Соответственно у меня там есть компоненты, которые оборачивают scheduler, который запускает задачи(которые могут быть сконфигурированны на уровне приложения, так что для них тоже есть отдельный компонент внутри, который оборачивает задачи scheduler). Ещё я хочу запускать задачи в пулле горутин и конфигурировать с уровня приложения его поведение, соответственно есть обертка для пулла(executor).
Мои объяснения могут быть не очень понятными, лучше просто посмотреть код


Che
11.07.2017
20:46:36

Slava
11.07.2017
23:45:59
https://www.howtographql.com/

Google

Slava
11.07.2017
23:46:05
ничё себе

corpix
12.07.2017
02:15:21
Люблю мейкфайлы :)
Обновил свой генератор Makefile для go проектов https://github.com/corpix/go-makefile#usage
Самое важное изменение - переезд на glide, плюс теперь он умеет генерить мейкфайл:
- для приложения/пакета(они немного отличаются по содержимому);
- который поставит не только дефолтные тулзы, но и что-то кастомное на ваш вкус;
- с инклюдами других мейкфайлов;
- цели которого можно доопределять;
- сохраняя или читая конфиг для генерации;
И ещё некоторые кастомизации(смотрите --help у инструмента).

Andrew
12.07.2017
03:26:41

Mars
12.07.2017
04:09:24

Slava
12.07.2017
04:13:04