@proGO

Страница 1021 из 1674
Hexwell
26.11.2017
20:16:35
А зачем книги по Go если есть Go tour?

xPushkin
26.11.2017
20:21:11
А зачем книги по Go если есть Go tour?
Go Tour довольно поверхностный. В книгах так же описывают паттерны или рассказывают более in-depth.

folex
26.11.2017
20:58:28
Вечер добрый. Кто-нибудь пользовался grab? Не встречались с ошибкой ErrNoFilename? Я тут в неё уперся, и не знаю что делать. https://gist.github.com/folex/c3cc9ad1278639f221c395750c2bd6ee

Maxim
27.11.2017
07:49:56
Посоны, несколько дней назад начал сталкиваться с этой проблемой в проде (локально всё пашет). Имеется следующее: path := strconv.AppendQuote(nil, listen) handleFunc := func(ctx *http.RequestCtx) { dlog.Ln("Request path:", string(ctx.Path())) ctx.Request.ConnectionClose() if !bytes.HasPrefix(ctx.Path(), path) { dlog.Ln("Unsupported request path:", string(ctx.Path())) return } dlog.Ln("Catched supported request path:", string(ctx.Path())) var update Update if err := json.Unmarshal(ctx.Request.Body(), &update); err != nil { log.Fatalln(err.Error()) } channel <- update } if certFile != "" && keyFile != "" { dlog.Ln("Creating TLS router...") log.Fatal(http.ListenAndServeTLS(serve, certFile, keyFile, handleFunc)) } else { dlog.Ln("Creating simple router...") log.Fatal(http.ListenAndServe(serve, handleFunc)) } После запуска всё инициализируется успешно, но после первого реквеста всё едет: error when serving connection "172.19.0.2:2368"<->"149.154.167.213:56126": error when reading request headers: cannot find http request method in "\x16\x03\x01\x00\xc1\x01\x00\x00\xbd\x03\x03\xb7>\xd8\xf3\xd6{\x18^\nE\x88\x9c\x92\xa0\x89\x05Dt\x95\xd3ޅ\xa7\xe05\xb6(\xbb6\xcfp>\x00\x008\xc0,\xc00\x00\x9f̨̩̪\xc0+\xc0/\x00\x9e\xc0$\xc0(\x00k\xc0#\xc0'\x00g\xc0\n\xc0\x14\x009\xc0\t\xc0\x13\x003\x00\x9d\x00\x9c\x00=\x00<\x005\x00/\x00\xff\x01\x00\x00\\\x00\x00\x00\x12\x00\x10\x00\x00\rbot.toby3d.ru\x00\v\x00\x04\x03\x00\x01\x02\x00\n\x00\n\x00\b\x00\x1d\x00\x17\x00\x19\x00\x18\x00#\x00\x00\x00\r\x00 \x00\x1e\x06\x01\x06\x02\x06\x03\x05\x01\x05\x02\x05\x03\x04\x01\x04\x02\x04\x03\x03\x01\x03\x02\x03\x03\x02\x01\x02\x02\x02\x03\x00\x16\x00\x00\x00\x17\x00\x00". Buffer size=198, contents: "\x16\x03\x01\x00\xc1\x01\x00\x00\xbd\x03\x03\xb7>\xd8\xf3\xd6{\x18^\nE\x88\x9c\x92\xa0\x89\x05Dt\x95\xd3ޅ\xa7\xe05\xb6(\xbb6\xcfp>\x00\x008\xc0,\xc00\x00\x9f̨̩̪\xc0+\xc0/\x00\x9e\xc0$\xc0(\x00k\xc0#\xc0'\x00g\xc0\n\xc0\x14\x009\xc0\t\xc0\x13\x003\x00\x9d\x00\x9c\x00=\x00<\x005\x00/\x00\xff\x01\x00\x00\\\x00\x00\x00\x12\x00\x10\x00\x00\rbot.toby3d.ru\x00\v\x00\x04\x03\x00\x01\x02\x00\n\x00\n\x00\b\x00\x1d\x00\x17\x00\x19\x00\x18\x00#\x00\x00\x00\r\x00 \x00\x1e\x06\x01\x06\x02\x06\x03\x05\x01\x05\x02\x05\x03\x04\x01\x04\x02\x04\x03\x03\x01\x03\x02\x03\x03\x02\x01\x02\x02\x02\x03\x00\x16\x00\x00\x00\x17\x00\x00" ... ...и эта ошибка дублируется с каждым реквестом. Даже содержимое handleFunc не успевает исполнится

Google
John
27.11.2017
07:52:49
Посоны, несколько дней назад начал сталкиваться с этой проблемой в проде (локально всё пашет). Имеется следующее: path := strconv.AppendQuote(nil, listen) handleFunc := func(ctx *http.RequestCtx) { dlog.Ln("Request path:", string(ctx.Path())) ctx.Request.ConnectionClose() if !bytes.HasPrefix(ctx.Path(), path) { dlog.Ln("Unsupported request path:", string(ctx.Path())) return } dlog.Ln("Catched supported request path:", string(ctx.Path())) var update Update if err := json.Unmarshal(ctx.Request.Body(), &update); err != nil { log.Fatalln(err.Error()) } channel <- update } if certFile != "" && keyFile != "" { dlog.Ln("Creating TLS router...") log.Fatal(http.ListenAndServeTLS(serve, certFile, keyFile, handleFunc)) } else { dlog.Ln("Creating simple router...") log.Fatal(http.ListenAndServe(serve, handleFunc)) } После запуска всё инициализируется успешно, но после первого реквеста всё едет: error when serving connection "172.19.0.2:2368"<->"149.154.167.213:56126": error when reading request headers: cannot find http request method in "\x16\x03\x01\x00\xc1\x01\x00\x00\xbd\x03\x03\xb7>\xd8\xf3\xd6{\x18^\nE\x88\x9c\x92\xa0\x89\x05Dt\x95\xd3ޅ\xa7\xe05\xb6(\xbb6\xcfp>\x00\x008\xc0,\xc00\x00\x9f̨̩̪\xc0+\xc0/\x00\x9e\xc0$\xc0(\x00k\xc0#\xc0'\x00g\xc0\n\xc0\x14\x009\xc0\t\xc0\x13\x003\x00\x9d\x00\x9c\x00=\x00<\x005\x00/\x00\xff\x01\x00\x00\\\x00\x00\x00\x12\x00\x10\x00\x00\rbot.toby3d.ru\x00\v\x00\x04\x03\x00\x01\x02\x00\n\x00\n\x00\b\x00\x1d\x00\x17\x00\x19\x00\x18\x00#\x00\x00\x00\r\x00 \x00\x1e\x06\x01\x06\x02\x06\x03\x05\x01\x05\x02\x05\x03\x04\x01\x04\x02\x04\x03\x03\x01\x03\x02\x03\x03\x02\x01\x02\x02\x02\x03\x00\x16\x00\x00\x00\x17\x00\x00". Buffer size=198, contents: "\x16\x03\x01\x00\xc1\x01\x00\x00\xbd\x03\x03\xb7>\xd8\xf3\xd6{\x18^\nE\x88\x9c\x92\xa0\x89\x05Dt\x95\xd3ޅ\xa7\xe05\xb6(\xbb6\xcfp>\x00\x008\xc0,\xc00\x00\x9f̨̩̪\xc0+\xc0/\x00\x9e\xc0$\xc0(\x00k\xc0#\xc0'\x00g\xc0\n\xc0\x14\x009\xc0\t\xc0\x13\x003\x00\x9d\x00\x9c\x00=\x00<\x005\x00/\x00\xff\x01\x00\x00\\\x00\x00\x00\x12\x00\x10\x00\x00\rbot.toby3d.ru\x00\v\x00\x04\x03\x00\x01\x02\x00\n\x00\n\x00\b\x00\x1d\x00\x17\x00\x19\x00\x18\x00#\x00\x00\x00\r\x00 \x00\x1e\x06\x01\x06\x02\x06\x03\x05\x01\x05\x02\x05\x03\x04\x01\x04\x02\x04\x03\x03\x01\x03\x02\x03\x03\x02\x01\x02\x02\x02\x03\x00\x16\x00\x00\x00\x17\x00\x00" ... ...и эта ошибка дублируется с каждым реквестом. Даже содержимое handleFunc не успевает исполнится
такое впечатление, что у тебя юникод не декодирован

Maxim
27.11.2017
07:53:35
Посоны, несколько дней назад начал сталкиваться с этой проблемой в проде (локально всё пашет). Имеется следующее: path := strconv.AppendQuote(nil, listen) handleFunc := func(ctx *http.RequestCtx) { dlog.Ln("Request path:", string(ctx.Path())) ctx.Request.ConnectionClose() if !bytes.HasPrefix(ctx.Path(), path) { dlog.Ln("Unsupported request path:", string(ctx.Path())) return } dlog.Ln("Catched supported request path:", string(ctx.Path())) var update Update if err := json.Unmarshal(ctx.Request.Body(), &update); err != nil { log.Fatalln(err.Error()) } channel <- update } if certFile != "" && keyFile != "" { dlog.Ln("Creating TLS router...") log.Fatal(http.ListenAndServeTLS(serve, certFile, keyFile, handleFunc)) } else { dlog.Ln("Creating simple router...") log.Fatal(http.ListenAndServe(serve, handleFunc)) } После запуска всё инициализируется успешно, но после первого реквеста всё едет: error when serving connection "172.19.0.2:2368"<->"149.154.167.213:56126": error when reading request headers: cannot find http request method in "\x16\x03\x01\x00\xc1\x01\x00\x00\xbd\x03\x03\xb7>\xd8\xf3\xd6{\x18^\nE\x88\x9c\x92\xa0\x89\x05Dt\x95\xd3ޅ\xa7\xe05\xb6(\xbb6\xcfp>\x00\x008\xc0,\xc00\x00\x9f̨̩̪\xc0+\xc0/\x00\x9e\xc0$\xc0(\x00k\xc0#\xc0'\x00g\xc0\n\xc0\x14\x009\xc0\t\xc0\x13\x003\x00\x9d\x00\x9c\x00=\x00<\x005\x00/\x00\xff\x01\x00\x00\\\x00\x00\x00\x12\x00\x10\x00\x00\rbot.toby3d.ru\x00\v\x00\x04\x03\x00\x01\x02\x00\n\x00\n\x00\b\x00\x1d\x00\x17\x00\x19\x00\x18\x00#\x00\x00\x00\r\x00 \x00\x1e\x06\x01\x06\x02\x06\x03\x05\x01\x05\x02\x05\x03\x04\x01\x04\x02\x04\x03\x03\x01\x03\x02\x03\x03\x02\x01\x02\x02\x02\x03\x00\x16\x00\x00\x00\x17\x00\x00". Buffer size=198, contents: "\x16\x03\x01\x00\xc1\x01\x00\x00\xbd\x03\x03\xb7>\xd8\xf3\xd6{\x18^\nE\x88\x9c\x92\xa0\x89\x05Dt\x95\xd3ޅ\xa7\xe05\xb6(\xbb6\xcfp>\x00\x008\xc0,\xc00\x00\x9f̨̩̪\xc0+\xc0/\x00\x9e\xc0$\xc0(\x00k\xc0#\xc0'\x00g\xc0\n\xc0\x14\x009\xc0\t\xc0\x13\x003\x00\x9d\x00\x9c\x00=\x00<\x005\x00/\x00\xff\x01\x00\x00\\\x00\x00\x00\x12\x00\x10\x00\x00\rbot.toby3d.ru\x00\v\x00\x04\x03\x00\x01\x02\x00\n\x00\n\x00\b\x00\x1d\x00\x17\x00\x19\x00\x18\x00#\x00\x00\x00\r\x00 \x00\x1e\x06\x01\x06\x02\x06\x03\x05\x01\x05\x02\x05\x03\x04\x01\x04\x02\x04\x03\x03\x01\x03\x02\x03\x03\x02\x01\x02\x02\x02\x03\x00\x16\x00\x00\x00\x17\x00\x00" ... ...и эта ошибка дублируется с каждым реквестом. Даже содержимое handleFunc не успевает исполнится
Гуглил по всякому и мнения рознятся: 1) Заголовки реквеста слишком толстые и го просто не может нормально прочитать это месиво 2) Просто размер буфера мал и реквест тупо не помещается целиком 3) Что-то между мной и клиентом обрубает соединение и поэтому го расстраивается

такое впечатление, что у тебя юникод не декодирован
Пробовал декодировать сообщения, но на выходе сплошные иероглифы и битые символы

Alexey
27.11.2017
07:54:22
Я бы SSL на нжинксе обрезал:)

Maxim
27.11.2017
07:54:49
Я бы SSL на нжинксе обрезал:)
Соединение проксируется через caddy

Есть подозрение что он и уродует реквесты

Но это не точно

Alexey
27.11.2017
07:55:19
А вообще, можно снять дамп трафика, а потом wireshark'ом его посмотреть. Он умеет ssl раскрывать, если ему дать сертификаты.

Maxim
27.11.2017
07:56:03
Yaroslav
27.11.2017
07:57:22
Посоны, несколько дней назад начал сталкиваться с этой проблемой в проде (локально всё пашет). Имеется следующее: path := strconv.AppendQuote(nil, listen) handleFunc := func(ctx *http.RequestCtx) { dlog.Ln("Request path:", string(ctx.Path())) ctx.Request.ConnectionClose() if !bytes.HasPrefix(ctx.Path(), path) { dlog.Ln("Unsupported request path:", string(ctx.Path())) return } dlog.Ln("Catched supported request path:", string(ctx.Path())) var update Update if err := json.Unmarshal(ctx.Request.Body(), &update); err != nil { log.Fatalln(err.Error()) } channel <- update } if certFile != "" && keyFile != "" { dlog.Ln("Creating TLS router...") log.Fatal(http.ListenAndServeTLS(serve, certFile, keyFile, handleFunc)) } else { dlog.Ln("Creating simple router...") log.Fatal(http.ListenAndServe(serve, handleFunc)) } После запуска всё инициализируется успешно, но после первого реквеста всё едет: error when serving connection "172.19.0.2:2368"<->"149.154.167.213:56126": error when reading request headers: cannot find http request method in "\x16\x03\x01\x00\xc1\x01\x00\x00\xbd\x03\x03\xb7>\xd8\xf3\xd6{\x18^\nE\x88\x9c\x92\xa0\x89\x05Dt\x95\xd3ޅ\xa7\xe05\xb6(\xbb6\xcfp>\x00\x008\xc0,\xc00\x00\x9f̨̩̪\xc0+\xc0/\x00\x9e\xc0$\xc0(\x00k\xc0#\xc0'\x00g\xc0\n\xc0\x14\x009\xc0\t\xc0\x13\x003\x00\x9d\x00\x9c\x00=\x00<\x005\x00/\x00\xff\x01\x00\x00\\\x00\x00\x00\x12\x00\x10\x00\x00\rbot.toby3d.ru\x00\v\x00\x04\x03\x00\x01\x02\x00\n\x00\n\x00\b\x00\x1d\x00\x17\x00\x19\x00\x18\x00#\x00\x00\x00\r\x00 \x00\x1e\x06\x01\x06\x02\x06\x03\x05\x01\x05\x02\x05\x03\x04\x01\x04\x02\x04\x03\x03\x01\x03\x02\x03\x03\x02\x01\x02\x02\x02\x03\x00\x16\x00\x00\x00\x17\x00\x00". Buffer size=198, contents: "\x16\x03\x01\x00\xc1\x01\x00\x00\xbd\x03\x03\xb7>\xd8\xf3\xd6{\x18^\nE\x88\x9c\x92\xa0\x89\x05Dt\x95\xd3ޅ\xa7\xe05\xb6(\xbb6\xcfp>\x00\x008\xc0,\xc00\x00\x9f̨̩̪\xc0+\xc0/\x00\x9e\xc0$\xc0(\x00k\xc0#\xc0'\x00g\xc0\n\xc0\x14\x009\xc0\t\xc0\x13\x003\x00\x9d\x00\x9c\x00=\x00<\x005\x00/\x00\xff\x01\x00\x00\\\x00\x00\x00\x12\x00\x10\x00\x00\rbot.toby3d.ru\x00\v\x00\x04\x03\x00\x01\x02\x00\n\x00\n\x00\b\x00\x1d\x00\x17\x00\x19\x00\x18\x00#\x00\x00\x00\r\x00 \x00\x1e\x06\x01\x06\x02\x06\x03\x05\x01\x05\x02\x05\x03\x04\x01\x04\x02\x04\x03\x03\x01\x03\x02\x03\x03\x02\x01\x02\x02\x02\x03\x00\x16\x00\x00\x00\x17\x00\x00" ... ...и эта ошибка дублируется с каждым реквестом. Даже содержимое handleFunc не успевает исполнится
не кидай такие простыни сообщениями

размести где-то и дай ссылку лучше

Slach
27.11.2017
07:57:41
А вообще, можно снять дамп трафика, а потом wireshark'ом его посмотреть. Он умеет ssl раскрывать, если ему дать сертификаты.
только для старых протоколов, для новых TLS1.2 уже нужно где то дамп сессионных ключей хранить

Maxim
27.11.2017
07:57:43
Google
Yaroslav
27.11.2017
07:58:07
с телефона кажеться, что телеграму пришел конец

а потом понимаешь, что это лишь сообщение

Maxim
27.11.2017
07:59:21
Посоны, несколько дней назад начал сталкиваться с этой проблемой в проде (локально всё пашет). Имеется следующее: path := strconv.AppendQuote(nil, listen) handleFunc := func(ctx *http.RequestCtx) { dlog.Ln("Request path:", string(ctx.Path())) ctx.Request.ConnectionClose() if !bytes.HasPrefix(ctx.Path(), path) { dlog.Ln("Unsupported request path:", string(ctx.Path())) return } dlog.Ln("Catched supported request path:", string(ctx.Path())) var update Update if err := json.Unmarshal(ctx.Request.Body(), &update); err != nil { log.Fatalln(err.Error()) } channel <- update } if certFile != "" && keyFile != "" { dlog.Ln("Creating TLS router...") log.Fatal(http.ListenAndServeTLS(serve, certFile, keyFile, handleFunc)) } else { dlog.Ln("Creating simple router...") log.Fatal(http.ListenAndServe(serve, handleFunc)) } После запуска всё инициализируется успешно, но после первого реквеста всё едет: error when serving connection "172.19.0.2:2368"<->"149.154.167.213:56126": error when reading request headers: cannot find http request method in "\x16\x03\x01\x00\xc1\x01\x00\x00\xbd\x03\x03\xb7>\xd8\xf3\xd6{\x18^\nE\x88\x9c\x92\xa0\x89\x05Dt\x95\xd3ޅ\xa7\xe05\xb6(\xbb6\xcfp>\x00\x008\xc0,\xc00\x00\x9f̨̩̪\xc0+\xc0/\x00\x9e\xc0$\xc0(\x00k\xc0#\xc0'\x00g\xc0\n\xc0\x14\x009\xc0\t\xc0\x13\x003\x00\x9d\x00\x9c\x00=\x00<\x005\x00/\x00\xff\x01\x00\x00\\\x00\x00\x00\x12\x00\x10\x00\x00\rbot.toby3d.ru\x00\v\x00\x04\x03\x00\x01\x02\x00\n\x00\n\x00\b\x00\x1d\x00\x17\x00\x19\x00\x18\x00#\x00\x00\x00\r\x00 \x00\x1e\x06\x01\x06\x02\x06\x03\x05\x01\x05\x02\x05\x03\x04\x01\x04\x02\x04\x03\x03\x01\x03\x02\x03\x03\x02\x01\x02\x02\x02\x03\x00\x16\x00\x00\x00\x17\x00\x00". Buffer size=198, contents: "\x16\x03\x01\x00\xc1\x01\x00\x00\xbd\x03\x03\xb7>\xd8\xf3\xd6{\x18^\nE\x88\x9c\x92\xa0\x89\x05Dt\x95\xd3ޅ\xa7\xe05\xb6(\xbb6\xcfp>\x00\x008\xc0,\xc00\x00\x9f̨̩̪\xc0+\xc0/\x00\x9e\xc0$\xc0(\x00k\xc0#\xc0'\x00g\xc0\n\xc0\x14\x009\xc0\t\xc0\x13\x003\x00\x9d\x00\x9c\x00=\x00<\x005\x00/\x00\xff\x01\x00\x00\\\x00\x00\x00\x12\x00\x10\x00\x00\rbot.toby3d.ru\x00\v\x00\x04\x03\x00\x01\x02\x00\n\x00\n\x00\b\x00\x1d\x00\x17\x00\x19\x00\x18\x00#\x00\x00\x00\r\x00 \x00\x1e\x06\x01\x06\x02\x06\x03\x05\x01\x05\x02\x05\x03\x04\x01\x04\x02\x04\x03\x03\x01\x03\x02\x03\x03\x02\x01\x02\x02\x02\x03\x00\x16\x00\x00\x00\x17\x00\x00" ... ...и эта ошибка дублируется с каждым реквестом. Даже содержимое handleFunc не успевает исполнится
Никогда такого не было и вот опять. ©

Alexey
27.11.2017
08:02:53
только для старых протоколов, для новых TLS1.2 уже нужно где то дамп сессионных ключей хранить
Не знал, ого. Ну если с начала сессии, то ведь откроется всё равно?

Maxim
27.11.2017
08:03:53
Мне подсказывают что нечто отправляет мой httpS трафик на http сервер: \x16\x03\x01\x00 looks like the start of an https handshake.

Александр
27.11.2017
08:32:51
а как гошники живут не с типизированными ошибками?

не возможно же сделать хадлер нормальный

вернули тип error в котором максимум что есть строка с "база данных упала, все пропало"

Slach
27.11.2017
09:13:51
Alexey
27.11.2017
09:15:00
вернули тип error в котором максимум что есть строка с "база данных упала, все пропало"
Если надо знать, какая именно ошибка, то возвращают переменную ErrЧтотоТам, и проверяют её.

Slach
27.11.2017
09:15:42
Не знал, ого. Ну если с начала сессии, то ведь откроется всё равно?
начало сессии, это генерация сессионных ключей, и использование diffi-helman https://tls.dxdt.ru/tls.html#dh-protocol

Юрий
27.11.2017
10:22:32
Может кто работал с github.com/mattn/go-oci8 result, err := db.Exec("set role user_read_only identified qwerty123") как result посмотреть

Юрий
27.11.2017
10:26:44
не могу понять что они возвращают

номер и error

Kirill
27.11.2017
10:27:27
https://github.com/mattn/go-oci8/blob/master/oci8.go#L1623

Юрий
27.11.2017
10:43:07
а, то есть RowsAffected всегда ноль для комманд без вывода

Google
Юрий
27.11.2017
10:43:17
а ошибки валятся в err если что

типа set role ALTER SESSION и т.п.

Gleb
27.11.2017
10:53:08
Есть у кого опыт работы с Facebook Graph API?

Aleksandr
27.11.2017
11:15:46
Есть у кого опыт работы с Facebook Graph API?
это какая-то неизвестная соцсетка?

Gleb
27.11.2017
11:16:02
Она самая)

Aleksandr
27.11.2017
11:17:11
Она самая)
я намекаю на то, что надо вопрос задавать - здесь точно есть те, кто работал с ФБ

Gleb
27.11.2017
11:19:05
Хочется узнать чужой опыт. Мне тут креативщик задаёт вопрос, можно ли проводить разные активности внутри своего сообщества, из разряда «лайкни там, лайкни тут, оставь там комментарий и мы дадим тебе приз». На всяких реддитах пишут, что там есть проблемы с Terms of use.

Да и вообще сама дока по апи выглядит как один большой и страшный толмут)

Gleb
27.11.2017
11:20:57
Так я же говорю, мне интересно чужой опыт послушать, негативный и позитивный

Александр
27.11.2017
14:06:17
я тут сделал небольшой тестик - https://play.golang.org/p/N1jIDmYzJL а он что при & выделяет память как при new?

Александр
27.11.2017
14:06:48
я думал мы работаем с глобальным объектом, который будет перетираться/переинициализироваться

тобишь результат будет - &{Петя} &{Вася} &{Вася}

Aleksandr
27.11.2017
14:08:04
это ссылка на кусок памяти

Александр
27.11.2017
14:08:11
я понимаю что это указатель

Aleksandr
27.11.2017
14:08:15
итого у тебя в A ссылка на один кусок, в B на другой

почему ссылка должна перетирать что-то?

Александр
27.11.2017
14:09:00
я думал что он при инициализации типа - type TestStruct struct выделяет память, а потом указетели будут указывать прямо на единый выделенный кусок

Aleksandr
27.11.2017
14:09:24
но тут их два

Google
Aleksandr
27.11.2017
14:09:38
два выделенных куска

Александр
27.11.2017
14:10:53
а если мы сделаем - func testA() TestStruct { return TestStruct{ name: "Петя", } } func testB() TestStruct { return TestStruct{ name: "Вася", } }

тоже самое будет по памяти выделено?

только в переменных будут уже не указатели, а прямо полный структуры

Admin
ERROR: S client not available

Aleksandr
27.11.2017
14:11:27
я так понимаю да

Александр
27.11.2017
14:11:37
какой смысл от указателей тогда

Vlad
27.11.2017
14:11:39
указатели в го - это тоже не просто адрес, а некая структура

Александр
27.11.2017
14:11:55
я думал это аналоги сишных указателей

Aleksandr
27.11.2017
14:11:56
какой смысл от указателей тогда
такой же как в пхп внезапно

Vlad
27.11.2017
14:12:01
[type : addr], как минимум

У тебя хранится не только адрес, но и тип

Что дает дополнительные возможности Гошному рантайму

В то время как в Си - это просто адрес, да

По сути, Го-шные указатели ни чем не отличаются от джавовых reference types

Александр
27.11.2017
14:15:05
ну окей

Vlad
27.11.2017
14:15:52
Ну и если хочешь "как в Си" - unsafe.Pointer

Влад
27.11.2017
14:16:49
Так как сделать константный указатель?

Чтобы таки избежать копирования, и чтобы переменную нельзя было менять.

Vlad
27.11.2017
14:17:40
Вроде бы при передаче в метод/функцию всегда копируется аргумент

Google
Vlad
27.11.2017
14:18:26


Влад
27.11.2017
14:20:11
В Си, насколько я шарю, ничего не копируется. Допустим так: typedef struct { size_t size; char *data; long int ID; } Data; void getInfo(const Data *data) { data->ID = 1; // error }

Vlad
27.11.2017
14:20:35
так мы же и не Си обсуждаем

Влад
27.11.2017
14:20:48
Ну тип, это очень удобная вещь.

Vlad
27.11.2017
14:21:01
Что поделать, десу

Влад
27.11.2017
14:21:07
А ГО, как я читал, хочет перекрыть С. Думал, есть такое.

Но ладно.

Vlad
27.11.2017
14:23:34
Влад
27.11.2017
14:23:35
Не правильно выразился. Стать как С, только лучше.

plq
27.11.2017
14:24:01
Vlad
27.11.2017
14:24:11
Можно и на Си писать веб-сервера, можно на С++ (привет Паше Дурову)

Влад
27.11.2017
14:24:17
Не суть.

Мне ГО збс, как тому, кто кодит на телефоне.

И телеграм бота на изи, и нейросеть.

Страница 1021 из 1674