
Max
19.02.2018
16:17:05
Серьезно?) вообще то это пошло из C++ и книги “Банды четырех»

Pawel
19.02.2018
16:18:19

Andrey
19.02.2018
16:18:43
Праздный вопрос, что быстрее
a.foo = newSlice
или
b.bar = &newSlice
(будет ли копироваться слайс, если присваивать не по ссылке)
в этом примере
https://play.golang.org/p/GMv7E5--3X8

Илья
19.02.2018
16:21:16
он не будет копироваться в обоих случаях

Google

Alexander
19.02.2018
16:21:17
Слайс - это структура из размера и указателя на массив с данными. И даже при простом копировании по значению сами данные не копируются, так то разница если и есть, то минимальная.

Илья
19.02.2018
16:21:41
во втором случае придётся еще пойнтер создать

Andrey
19.02.2018
16:22:40

Alexander
19.02.2018
16:22:42

Илья
19.02.2018
16:23:21

Alexander
19.02.2018
16:23:40
?

Andrey
19.02.2018
16:23:55
Да, вопрос про данные. Но дополнение про структуру слайса очень кстати. Теперь стало намного понятнее.
Еще раз спасибо!
The run-time data structure holding the pointer, length, and capacity

Alexander
19.02.2018
16:26:09
https://github.com/golang/go/blob/master/src/runtime/slice.go#L11 :)

Alexander
19.02.2018
17:17:24
Ребят, привет! Кто-нибудь может пояснить за контекст?
На авторизации беру jwt-токен, из него беру структуру пользователя и пробрасываю в контекст context.WithValue(r.Context(), "curUser", claims.User).
Затем, в другом пакадже, беру контекст по строковому ключу "curUser", привожу тип r.Context().Value("curUser").(models.User) и всё зашибись.
Но golint ругается, что нельзя использовать базовый тип для ключа.
Я правильно понимаю, что это мне предлагается таскать по всем пакаджам кастомный тип для ключа контекста? Аля type contextKey string? Зачем это?
Забить можно? :)

Илья
19.02.2018
17:21:00
стоит завести, чтобы случайно не перетереть

Alexander
19.02.2018
17:28:20

Google

Slava
19.02.2018
18:09:59
Ребят, привет! Кто-нибудь может пояснить за контекст?
На авторизации беру jwt-токен, из него беру структуру пользователя и пробрасываю в контекст context.WithValue(r.Context(), "curUser", claims.User).
Затем, в другом пакадже, беру контекст по строковому ключу "curUser", привожу тип r.Context().Value("curUser").(models.User) и всё зашибись.
Но golint ругается, что нельзя использовать базовый тип для ключа.
Я правильно понимаю, что это мне предлагается таскать по всем пакаджам кастомный тип для ключа контекста? Аля type contextKey string? Зачем это?
Забить можно? :)
Лучше не ключ таскать, а дать метод, в который ты отдаешь контекст, а на выходе юзера имеешь. Внутри по кастомному non public типу работаешь.

Alexander
19.02.2018
18:15:57

The
19.02.2018
18:58:57
там как раз не экспортируемый тип есть, вот собственно код: https://blog.golang.org/context/userip/userip.go
и сама статья https://blog.golang.org/context

Alexander
19.02.2018
19:08:03

Pawel
19.02.2018
19:49:23
А есть библиотека чтобы в ней декларативно задать html-разметку, закешировать и отрендерить в http response?
по типу как в jsx

Alex
19.02.2018
21:13:47
Либу для p2p ктонить встречал?

Mykyta
19.02.2018
21:16:35

Baldr
19.02.2018
21:17:30
Либу для p2p ктонить встречал?
почему бы не спросить гугл перед тем как задавать вопрос в чате?
https://www.google.com/search?channel=fs&q=golang+p2p&ie=utf-8&oe=utf-8

Alexey
19.02.2018
21:26:51
Есть использовавшие/писавшие One Wire библиотеку?

Alex
19.02.2018
21:50:56

Aleksandr
19.02.2018
21:52:29

The
19.02.2018
21:53:38
это лохчейн, многое объясняет

Marlik
20.02.2018
01:54:18
Это пипец какой-то, оказалось если объявить глобальную
var db *sql.DB
и проинициализировать её, в надежде что одно соединение будет работать постоянно и нет нужды переподключаться, никуа не работает такой способ. Или я где-то туплю?

The
20.02.2018
01:59:01
https://play.golang.org/p/BZGYg6SLDnk
почему вариативная функция не видит юзера John?

Alfred
20.02.2018
02:13:08
как прочитать только первую линию из файла?

The
20.02.2018
02:15:04

Google

The
20.02.2018
02:15:32
https://play.golang.org/p/BZGYg6SLDnk
частично понял, что Join это метод у User, и первый элемент слайса уходит в User (можно проверить, если сделать u User, и затем записать в лог. Но что-то я не натыкался на такое поведение прежде. Может где есть описание почему так происходит?

Andrey
20.02.2018
02:54:57

Marlik
20.02.2018
03:02:48

Andrey
20.02.2018
03:03:19
1. Показать код
2. Показать ошибку

Marlik
20.02.2018
03:03:22
Теоретически понимаю, что должно быть одно подключение, а практически оно только вначале и потом всё.

Andrey
20.02.2018
03:03:56
db.close() есть в коде?
Максимальное кол-во подключений поставил?

Marlik
20.02.2018
03:04:29
db.close() есть в коде?
func init() {
db, err := InitDB("./book.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
}

Andrey
20.02.2018
03:04:41
Лол

Marlik
20.02.2018
03:04:56
Лол
Было по другому, в другом месте.))

Andrey
20.02.2018
03:05:38

Marlik
20.02.2018
03:06:13

Andrey
20.02.2018
03:06:18
И что ты открываешь коннект и сразу закрываешь?

Marlik
20.02.2018
03:06:58
Ща код скину.

Andrey
20.02.2018
03:07:38
(Спойлер, в твоем случае сразу)
Но ты сходи прочитай про него. Будет полезно.

Google

Marlik
20.02.2018
03:09:28
https://play.golang.org/p/S3i9Nra5cGc

Andrey
20.02.2018
03:10:51

Marlik
20.02.2018
03:12:35
Так и какая ошибка? В какой строке?
Ошибка в функции Parser, опытным путём установил, что коннекта к базе нет. То есть заново подключаюсь к базе, всё работает. Но, это затратно так постоянно подключаться, на каждый запрос.

Admin
ERROR: S client not available

Marlik
20.02.2018
03:13:02
Вот где можно закрыть базу, ума не приложу.

Andrey
20.02.2018
03:15:19
65,66,67 строки ты не проверяешь каждый err

Marlik
20.02.2018
03:17:05
Вот отредактил https://play.golang.org/p/bYeRL8d0nBi

Andrey
20.02.2018
03:19:02
Tx.Commit тоже err возвращает

Marlik
20.02.2018
03:20:10

Andrey
20.02.2018
03:21:10
Эх... я тебе на возможные места указываю, а ты "мелочи"

Marlik
20.02.2018
03:21:27
А, да косяк, ошибку не проверил.
err := tx.Commit()
if err != nil {
return nil, errors.Wrap(err, "Not commit the transaction")
}
err := вот это не поставил пздц. Спасибо.
Сервак крашится, вот
go run main.go db.go
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4d9e3a]
И потом листинг как обычно.
Сервак крашится когда я, пытаюсь лезть в базу, коннект к которой порван.

20.02.2018
04:18:47

Marlik
20.02.2018
04:47:05
Это печально
Интересная мысль, спасибо. Я писал так потому что, возвращал из функции db и err. Соответственно если ошибка, то я вместо дескриптора базы, возвращаю nil и ошибку.

Pawel
20.02.2018
05:28:36
Шаблонизатор, что ли?
нет. хочется прописывать хтмл прямо в коде Го декларативно без всяких шаблонов. Вот как-то так https://github.com/myitcv/react/blob/master/examples/todoapp/todo_app.go#L59

Slach
20.02.2018
05:43:16

Google

Alex
20.02.2018
06:09:58

Pawel
20.02.2018
06:10:55

meehalkoff✪
20.02.2018
06:13:30

Pawel
20.02.2018
06:14:41
Внезапно на нём сайты пишут. Не надо уводить дискуссию на мусорные темы

meehalkoff✪
20.02.2018
06:26:11

Yura
20.02.2018
06:27:37

Zloy Dobriy
20.02.2018
06:28:16

Мерлин
20.02.2018
06:28:53

Zloy Dobriy
20.02.2018
06:28:59

Pawel
20.02.2018
06:29:08

Мерлин
20.02.2018
06:29:43

Yura
20.02.2018
06:29:43

meehalkoff✪
20.02.2018
06:30:02

Мерлин
20.02.2018
06:30:20