@gogolang

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

Pawel
19.02.2018
16:18:19
Серьезно?) вообще то это пошло из C++ и книги “Банды четырех»
вы удивитесь, но теоретически основы все этой херни заложил ещё Алан Кей в смолтолке. но какое это имеет значение?))

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
он не будет копироваться в обоих случаях
Данные не будут копироваться, а вот структура слайса будет. И она тоже содержит внутри себя указатель.

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
Alexander
19.02.2018
18:15:57
The
19.02.2018
18:58:57
Не очень ясно понял, что имеется ввиду. Буду медитировать и читать гугл. Спасибо, Слава :)
Погугли golang context example, у них в блоге есть пример использования, там есть пакет для работы с IP который пакует в контекст IP и выдергивает из контекста IP.

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

и сама статья https://blog.golang.org/context

Alexander
19.02.2018
19:08:03
Погугли golang context example, у них в блоге есть пример использования, там есть пакет для работы с IP который пакует в контекст IP и выдергивает из контекста IP.
Ага. Я читал, но на очень поверхностно. Спасибо, сейчас вдумчиво перечитаю. Я просто новичок в программировании, не всегда сходу понятны best practices.

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

по типу как в jsx

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

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 библиотеку?

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
как прочитать только первую линию из файла?
scanner := bufio.NewScanner(file) scanner.Split(bufio.ScanLines) scanner.Scan() scanner.Text()

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
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
func init() { db, err := InitDB("./book.db") if err != nil { log.Fatal(err) } defer db.Close() }
Ты понимаешь что у тебя в этой фукнции дефер бесполезный и почему?

Marlik
20.02.2018
03:06:13
Ты понимаешь что у тебя в этой фукнции дефер бесполезный и почему?
Но тут понятно, я уж эксперементировать начал, он в main был.

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
https://play.golang.org/p/S3i9Nra5cGc
Так и какая ошибка? В какой строке?

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
65,66,67 строки ты не проверяешь каждый err
Проверяю, в смысле отправляю ошибку в main где перехватываю через дефер.

Вот отредактил https://play.golang.org/p/bYeRL8d0nBi

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

Marlik
20.02.2018
03:20:10
Tx.Commit тоже err возвращает
А, ну это перепишу, мелочи. Где закрывается не пойму? Может когда вызываю Parser коннект рвётся?

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] И потом листинг как обычно.

Сервак крашится когда я, пытаюсь лезть в базу, коннект к которой порван.

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
нет. хочется прописывать хтмл прямо в коде Го декларативно без всяких шаблонов. Вот как-то так https://github.com/myitcv/react/blob/master/examples/todoapp/todo_app.go#L59
дык это не HMTL ;) это биндинг который возвращает string ;) "при сериализации" html сам по себе декларативный потому что по факту семантически описывает DOM

Google
Alex
20.02.2018
06:09:58
Вот отредактил https://play.golang.org/p/bYeRL8d0nBi
В initdb можно убрать (db * тк это локально

Pawel
20.02.2018
06:10:55
дык это не HMTL ;) это биндинг который возвращает string ;) "при сериализации" html сам по себе декларативный потому что по факту семантически описывает DOM
вы путаете понятие. Это не биндинг, а готовая разметка. дык это не HMTL - вот именно это мне и нужно, потому что html в качестве языка программирования - ГАВНО. Го по лучше будет

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

Yura
20.02.2018
06:27:37
Внезапно на нём сайты пишут. Не надо уводить дискуссию на мусорные темы
HTML - язык разметки. Вы бы слушали опытных людей, вместо того, чтобы умняка разводить тут.

Zloy Dobriy
20.02.2018
06:28:16
Мерлин
20.02.2018
06:28:53
нет. хочется прописывать хтмл прямо в коде Го декларативно без всяких шаблонов. Вот как-то так https://github.com/myitcv/react/blob/master/examples/todoapp/todo_app.go#L59
Неа, вряд ли получится вменяемо, разве что какое-то подмножество HTML Go очень плохо подходит для DSL

Pawel
20.02.2018
06:29:08
HTML - язык разметки. Вы бы слушали опытных людей, вместо того, чтобы умняка разводить тут.
откровенно говоря мне насрать кто чем его считает. Но писать бизнес логику на шаблонизаторах html я категорически не хочу

meehalkoff✪
20.02.2018
06:30:02
Мерлин
20.02.2018
06:30:20
доо, на html писать циклы и ветвления куда лучше
Што Какие циклы и ветвления в HTML? Может быть ты с js путаешь?

Страница 837 из 1630