Artem
в этом есть смысл
Alexander
package pack var MyConst = 16 const YourConst = 16
Alexander
и то и другое будет доступно
Daniel
ага
Alexander
да, наверно нубский вопрос, но все же
Alexander
почему если это константа - сразу не писать просто const?
Daniel
var MyConst = 16 const YourConst = 16 MyConst = 17 YourConst = 17
Alexander
не, понятно, что констранты менять нельзя
Artem
пляши не от того, как пишут, а от того, какие возможности предоставляет
Daniel
не бывает констант никаких типов, кроме базовых
heavycharged
примитивных, видимо. и основанных на примитивах.
Daniel
базовые. они называются базовые.
heavycharged
да, но я не это хотел сказать, а то, что type Custom uint8 тоже получится положить в константу
Alexander
блин, вроде яснее стало, но все равно чет не то
Alexander
спасибо
Васильев Виктор
Имеется ввиду что допустим константы структуры не может быть поэтому делуют переменную или константы которая инициализируется функцией не может быть
Васильев Виктор
поэтому так константы делают
Васильев Виктор
допустим ошибки делают через errors.New
Васильев Виктор
а если базовый тип то вполне можно обойтись константой простой
Васильев Виктор
считай если тип можно заинлайнить в текст то это константа
Васильев Виктор
если нет то переменная
Alexander
Ясно, но все же я говорил именно про те случаи, когда обычный int объявляют через var
Alexander
А не const
Васильев Виктор
Тогда это скорее дело вкуса или еще чего. Но в таких случаях лучше писать const
Васильев Виктор
Так как ты определенно даешь понять челвоеку что значение точно не поменяется
Daniel
если коротко, то везде, где возможен const - должен быть const
Alexander
Во, спасибо
Alexander
Нашел шибко умную статью на тему
Alexander
https://www.callicoder.com/golang-typed-untyped-constants/
Alexander
Но не осилил чет, потом дочитаю
ainu
Но не осилил чет, потом дочитаю
Смотри, ты можешь прибавить к time.Milliseconds + 5
ainu
но ты не можешь сделать var a int a=5 time.Milliseconds + a
ainu
Но зато можешь сделать const a = 5 time.Milliseconds + a
ainu
константа заменяется на числовое значение, а тип этого числового значения автоматом определяется по месту
Alexander
смогу, если приведу к int64?
Daniel
нет
ainu
никак=)
ainu
ни один из Int-ов
Alexander
var a int a = 5 t := time.Millisecond t = t + time.Duration(a)
ainu
а 5 приводится к нужному типу на этапе компиляции
Alexander
ну вроде так получилось)
Alexander
но посыл понял
Anonymous
Какая самая норм встраиваемая база данных?
Anonymous
Болт не понравился, особо не замутить схемы сложные
Anonymous
SQLite?
Daniel
sqlite не pure go, понадобится cgo
Anonymous
sqlite не pure go, понадобится cgo
Есть что то другое?
inztar
sqlite не pure go, понадобится cgo
тебе шашечки или ехать?
Egor
вкину офтопа, понравился дико блог чувака, много информативности и полезностей https://appliedgo.net/
Roman
storm плох, т.к. живет на длинной рефлексии, код ужасен (я смотрел его, жду момент переписать нах). реквест на сравнение полей так и не приняли, хотя очевидно же зачем
Stepan
panic: runtime error: invalid memory address or nil pointer dereference panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4df32a] Выдает go при sql запросе. Точно такой же скрипт нормально работает из другого докер контейнера, с немного другим json который он отправляет в базу, в чем может быть проблема?
Daniel
в чем угодно
🏁Александр
проблема в следующем "invalid memory address or nil pointer dereference"
Daniel
но точно не в go
Slava
Я думаю в коде
🏁Александр
вообще нужен код
🏁Александр
сделайте минимально работающий
Slava
Так если код будет работающим, тогда и ошибки не будет
Stepan
Сейчас скину код
Stepan
https://gist.github.com/StefanSH/674628fc73eaff27361498f3ac557149
Je
https://gist.github.com/StefanSH/674628fc73eaff27361498f3ac557149
db, err := sql.Open("mysql", database) и нет проверки err..
Stepan
Это функция которая забирает название файла из очереди и отправляет его на проверку антивирусу - он в свою очередь отдает json и этот скрипт отправляет его в бд, все это запускается внутри докера
Stepan
С некоторыми антивирусами это срабатывает, с некоторыми нет
Stepan
Но json они все нормально отдают
Je
чувак, ты открыл коннекшн и не проверил открылся ли он и стал обращаться к db, которая nil
Je
какие антивирусы..
Je
Напечатай ошибку для начала, прочитай еще несколько раз, погугли
Илья
чего там только нет
Илья
defer db.Close() в цикле for
Daniel
о!
Daniel
это вин
Илья
if _, err := os.Stat(path); os.IsNotExist(err) { проверка только на NotExist, если будет ошибка, но другая, пофиг
Илья
зачем-то два раза дергается stat, 1 - копипаст откуда-то видимо, потом второй, уже с игнором ошибки
Илья
код разрывной вообщем 🙂
Kirill
defer db.Close() в цикле for
😂😂🤣🤣🤣🤣🤣🤣🤣
Kirill
/me сполз под стол 🤣
$t3v3;0)
/me
heavycharged
че вы ржете, человек может учится
Kirill
/me
*trollface.jpg*