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

xPushkin
26.11.2017
20:21:11

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
Есть подозрение что он и уродует реквесты
Но это не точно

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

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

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 в котором максимум что есть строка с "база данных упала, все пропало"

Igor
27.11.2017
08:37:04

Ilya
27.11.2017
08:56:18

Slach
27.11.2017
09:13:51

Alexey
27.11.2017
09:15:00

Slach
27.11.2017
09:15:42

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

Kirill
27.11.2017
10:26:11

Юрий
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?

Kirill
27.11.2017
10:59:03

Aleksandr
27.11.2017
11:15:46

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

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

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

Aleksandr
27.11.2017
11:20:30

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
А ГО, как я читал, хочет перекрыть С. Думал, есть такое.
Но ладно.

plq
27.11.2017
14:23:02

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
Не суть.
Мне ГО збс, как тому, кто кодит на телефоне.
И телеграм бота на изи, и нейросеть.