
Sergey
02.08.2018
18:40:29
Хочется повторящийся код генерить автоматом

Artem
02.08.2018
18:41:13
Jet шаблонизатор

Sergey
02.08.2018
18:41:39
Смотрю вот на аст и стандартный шаблонизатор

Google

Sergey
02.08.2018
18:44:32
Всмысле с помощью го аст парсить файлы проекта и генерить в нужных местах с помощью стандартного щаблонизатора нужные функции
Которые тупо повторяются но у них разный тип

Artem
02.08.2018
18:44:55
Я себе делал либу которая AST в понятный вид приводила
Внутри beego вроде что-то генерится

Sergey
02.08.2018
18:47:06
Ладна начну разбираться с аст и по простому генерить что то для начала

Aleksey
02.08.2018
19:04:26
Ладна начну разбираться с аст и по простому генерить что то для начала
Бабка за дедку, дедка за репку
На основе stringer кто то создал const_list, а на основе этого констлиста я сколхозил map_gen, который для пользовательского типа гепатит функцию сравнения мар
https://github.com/fr0ster/map_gen/blob/master/main.go
Нифига не автоматически, но принцип демонстрирует.
В репозитории я указал ссылку на оригинальный исходник.
Все было создано в рамках дискуссии нужны ли в go дженерики

tony
02.08.2018
19:08:38
Господа, подскажите неофиту, вопрос скорее-всего глупый, но Golang эффективнее работает с памятью по сравнению с php 7.x?
Вопрос снят, действительно глупейший вопрос.

Pawel
02.08.2018
19:41:21

Bogdan (SirEdvin)
02.08.2018
19:43:53

Vladimir
02.08.2018
19:44:20

Bogdan (SirEdvin)
02.08.2018
19:46:09
//easyjson:json
type A struct {}
Коммент, который используется как мета-информация, из этой либы: https://github.com/mailru/easyjson
Вот jetbrains даже для нее костыль впилили: https://habr.com/company/JetBrains/blog/419061/ (раздел "Стиль кода").

Vladimir
02.08.2018
19:49:06

Google

Vladimir
02.08.2018
19:49:44
Я бы честно говоря лучше делал бы кодогенерацию из совсем своего формата

Bogdan (SirEdvin)
02.08.2018
19:50:54
Ну, подобный подход к хранению метаинформации в комментариях был еще предложен и go:generate и cgo, так что я тут вижу только закономерное развитие событий.

Daniel
02.08.2018
20:10:28

m
02.08.2018
20:47:49
Точнее, на его основе можно свой быстрый генератор JSON-а написать.
Там полно хороших идей.

Vladimir
02.08.2018
20:48:58

m
02.08.2018
20:50:59

Vladimir
02.08.2018
20:51:26

Subbotin
02.08.2018
23:15:34
вот кстати парни. вот такой вопрос. у меня есть тип. у него есть методы. в одном из методов я хочу дёргать некий колбэк, который хочу динамически объекту этого типа назначать. счас я делаю что-то типа
type A struct {
Callback func(a *A) error
}
и вызываю потом a.Callback(a)
а можно как-то сделать динамически назначаемый метод чтобы вызывать просто a.Callback()
вопрос чисто по синтаксическому сахару по сути

Yaroslav
02.08.2018
23:43:41
Передавать колбек в метод
Ну или назначать при создании переменной этого типа как поле, если необходим доступ ко внутренним полям

Dmitri
03.08.2018
01:16:57

Artem
03.08.2018
05:38:22

Sergey
03.08.2018
05:44:08

Stannis
03.08.2018
05:58:35
парни, как 00001 получить?

Google

Stannis
03.08.2018
05:58:43
Чёт не могу с форматом разобраться

Anton
03.08.2018
06:00:53
%05b

Stannis
03.08.2018
06:01:27

Foxcool
03.08.2018
06:11:51
https://habr.com/company/JetBrains/blog/419061/
я, конечно, на Атоме сижу, но фичи интересные

Sergey
03.08.2018
06:34:18
Там указатель
*c
Попробуй

Stannis
03.08.2018
06:39:46
Ещё вопрос знатокам
есть функция редиректа
func redirect(w http.ResponseWriter, r *http.Request) {
year, month, day := time.Now().Date()
req := fmt.Sprintf("https://wiki/pages/createpage.action?spaceKey=EWO&title=%d%d%dL&linkCreation=true&fromPageId=144443424", year, month, day)
http.Redirect(w, r, req, 301)
}
func main() {
C := new(count32)
C.counter = 0
fmt.Printf("%05d", C.counter)
http.HandleFunc("/", redirect)
err := http.ListenAndServe(":9988", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
Как в redirect передать C ???
http.HandleFunc("/", r(&С))
и
func r(w http.ResponseWriter, r *http.Request, z *c) {
не рабят


Andrew
03.08.2018
06:44:02
Ещё вопрос знатокам
есть функция редиректа
func redirect(w http.ResponseWriter, r *http.Request) {
year, month, day := time.Now().Date()
req := fmt.Sprintf("https://wiki/pages/createpage.action?spaceKey=EWO&title=%d%d%dL&linkCreation=true&fromPageId=144443424", year, month, day)
http.Redirect(w, r, req, 301)
}
func main() {
C := new(count32)
C.counter = 0
fmt.Printf("%05d", C.counter)
http.HandleFunc("/", redirect)
err := http.ListenAndServe(":9988", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
Как в redirect передать C ???
как вариант использовать глобальную переменную

Stannis
03.08.2018
06:44:28

Igor
03.08.2018
06:44:52
Привет. Есть куча json файлов с именем id. Нужно делать по ним поиск по словам и выдавать id файлов, в которых есть совпадения. Что для этого уже есть? Так сказать поисковая машина

Stannis
03.08.2018
06:45:46

Andrew
03.08.2018
06:45:50

Igor
03.08.2018
06:45:54
спс, гляну

Stannis
03.08.2018
06:47:18

Daniel
03.08.2018
06:48:14

Stannis
03.08.2018
06:48:26

Daniel
03.08.2018
06:48:36
плохо
так вот - это способ передать то, что вы хотите, туда, куда вы хотите

Google

Stannis
03.08.2018
06:49:46

Daniel
03.08.2018
06:51:37
там тоже есть замыкания
вот так, примерно:
https://play.golang.org/p/8xU6mnj4P0u

Alexander
03.08.2018
07:25:51

Daniel
03.08.2018
07:26:37
а?!

Alexander
03.08.2018
07:28:06
а?!
http.HandleFunc(
"/",
func(w http.ResponseWriter, r *http.Request) {
redirect(w, r, C)
},
)
err := http.ListenAndServe(":9988", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}

Daniel
03.08.2018
07:29:15
ну - да, мне надо передать в обработчик что-то, что вызываающая сторона ему передавать не готова
я устраиваю замыкание, и все получается хорошо

Alexander
03.08.2018
07:30:19
C := new(count32) - а что это за тип данных такой?
prog.go:10:58: undefined: count32
prog.go:17:11: undefined: count32

Daniel
03.08.2018
07:30:44
а это не мое, это я у автора вопроса позвимствовал

Stannis
03.08.2018
07:33:54

Alexander
03.08.2018
07:34:20

Stannis
03.08.2018
07:34:48

Alexander
03.08.2018
07:35:45

Andrew
03.08.2018
07:36:16

Stannis
03.08.2018
07:37:21

Pawel
03.08.2018
09:40:54

Alexandr
03.08.2018
09:41:49
коллеги, подскажите, пожалуйста, как на gin-gonic сделать регистрацию длля сайта? логин пароль, хеши, куки, вот это всё. Есть ли какой-то готовый пакет?

Pawel
03.08.2018
09:46:42

Google

Subbotin
03.08.2018
09:48:29

Mihail
03.08.2018
11:03:28
Всем привет
Какие возможности языка Go помимо Rest Api & Websocket?

Nyan
03.08.2018
11:05:57
это язык общего назначения, и возможности у него соответствующие

Vladimir
03.08.2018
11:06:17

Виктор
03.08.2018
11:08:50
если взять определение из википедии, то нет - го не предметно-ориентированный. и человек с ником Nyan выше написал что это язык общего назначения

Mihail
03.08.2018
11:09:16
Если бы вас попросили в одном предложении описать возможности языка Go, как бы вы это сделали?
Сори за офтоп

Vladimir
03.08.2018
11:09:56

Александр
03.08.2018
11:10:18

Mikalai
03.08.2018
11:10:24

Nyan
03.08.2018
11:10:40
с крутой кросскомпиляцией

Mihail
03.08.2018
11:10:57
Вы крутые
спасибо)

Bogdan (SirEdvin)
03.08.2018
11:21:28