Anonymous
Откуда инфа про ни одного? Он ж селект делает
Andrey
Я же говорю, можно и селект не делать. Но это про другое. Вопрос сейчас не в этом.
Anonymous
Да и что значит ни одного? Состояние то ток в базе актуально, не?
Andrey
Anonymous
Распределённый кэш тащить для юзеров или что?
Anonymous
Откуда инфа то будет, что юзер уже есть?
Anonymous
Или есть функция с ванга модом?
Andrey
Да какая разница?) Человек мучается с тем, что Scan не может сделать и я пытаюсь ванговать что он там написал и почему не работает
🎉
Вам компилятор сообщает где у вас ошибка
Да, он грит:
sql: Scan error on column index 3: converting driver.Value type <nil> ("<nil>") to a int64: invalid syntax
то есть, при создании новой структуры, я заполняю её, кроме Balance и пишу в базу. А когда второй раз пользователь читается из базы, он там есть, но Balance там nil. Ошибку я понимаю, я не понимаю почему если
Balance sql.NullInt64
я эту ошибку получаю?
Anonymous
Andrey
🎉
Anonymous
Понятно
Andrey
Anonymous
Я все понял
🎉
type DATA struct {
ID int64
ChatID sql.NullInt64
ElsID sql.NullInt64
Balance sql.NullInt64
MessageID int
StateWhat sql.NullString
PathWhere sql.NullString
DateTime *time.Time
}
Читаю из базы
func ReturnUser(db *sql.DB, ChatID int64) (p *DATA, err error) {}
Если пользователя нет, пишу в неё.
p := new(DATA)
p.ChatID.Int64 = ChatID
p.ElsID.Int64 = ElsID
p.MessageID = MessageID
p.StateWhat.String = "start"
p.PathWhere.String = "main"
InsertUser(db, p)
func InsertUser(db *sql.DB, p *DATA) (lastID int64, err error) {}
Так как Balance не заполняю в структуре, то в базу идёт nil. При последующем чтении из базы, я получаю эту ошибку.
Andrey
🙈
Andrey
Ладно) Надоело в вангу играть
Andrey
По вашим отрывкам вообще ничего не понятно
🎉
Ладно, спасибо за помощь, сам поковыряюсь.
Michael
type DATA struct {
ID int64
ChatID sql.NullInt64
ElsID sql.NullInt64
Balance sql.NullInt64
MessageID int
StateWhat sql.NullString
PathWhere sql.NullString
DateTime *time.Time
}
Читаю из базы
func ReturnUser(db *sql.DB, ChatID int64) (p *DATA, err error) {}
Если пользователя нет, пишу в неё.
p := new(DATA)
p.ChatID.Int64 = ChatID
p.ElsID.Int64 = ElsID
p.MessageID = MessageID
p.StateWhat.String = "start"
p.PathWhere.String = "main"
InsertUser(db, p)
func InsertUser(db *sql.DB, p *DATA) (lastID int64, err error) {}
Так как Balance не заполняю в структуре, то в базу идёт nil. При последующем чтении из базы, я получаю эту ошибку.
p := &Data{ChatID, ElsID, MessageID, "start", "main"}
так вроде приятнее
для баланса вместо nil можно использовать default 0 прямо на схеме базы, как вариант
🎉
Michael
а... не получится
🎉
Что?
Michael
p := &Data{ChatID, ElsID, 0, MessageID, "start", "main", &time.TIme{}}
Michael
Что?
и лучше показывать код, чтобы советы были адекватнее
🎉
🎉
Единственное что базу так создаю sqlite3 data.db < data.sql
Pawel
Timur
🎉
Pawel
Ох уж прям)) орм наше все)
готов поучавствовать в пердметной дисскуссии на эту тему)) предметная - это когда есть пример решения одной и той же ПРАКТИЧЕСКОЙ задачи с орм и без, при этом последний хуже или сложнее. Я лично таких не видел пока что
Pawel
Timur
это не говорит о качестве или сложности
🎉
А можно как-то извернуться и не рендерить шаблоны, а прописать их в коде?
🎉
Там всего то одна страничка, для шаблонов чото круто.
Slava
В строку можно сохранить
Timur
количество кода совсем не о чем не говорит. В такой концепции, asm - говнище редкостное
Pawel
если тоже самое что на асме можно записать короче но на сишечке, то очевидно да
Timur
ну очевидно, что для вас. на этом можно остановиться))
🎉
В строку можно сохранить
Ну я понимаю, что в переменную можно, а вот как это дело распарсить, как шаблон обычный? Ладно, спасибо, поковыряюсь ещё.
Timur
Пишут и на том и на другом
Pawel
на асме пишут то, что не могут написать на сях. ну так, на всякий случай.
Timur
и?
Timur
как это влияет на "хуже или сложнее"?
Pawel
это был риторический вопрос ?
Timur
Ну нет конечно же
Timur
на асме писать дольше
Timur
это можно померить
Timur
хотя тоже достаточно субьективная метрика
Timur
но про "хуже или сложнее" пока непонятно
aadz
Простите, но немножко оффтопа вчесть выходных https://www.youtube.com/watch?v=CdM5FAesu6o
Roman
Поясните ньюфагу за специфику языка в отличии от C++. В каких задачах чаще всего используется, какая ситуация языка на российском рынке, как обстоят дела на фрилансе, перспективно ли вкатываться, с какими технологиями/языками требуется на работе?
aadz
https://golang.org/doc/faq#What_is_the_purpose_of_the_project
.
Поясните ньюфагу за специфику языка в отличии от C++. В каких задачах чаще всего используется, какая ситуация языка на российском рынке, как обстоят дела на фрилансе, перспективно ли вкатываться, с какими технологиями/языками требуется на работе?
веб и микро сервисы, в принципе, основная область, но язык общего назначения
Не знаю как на российском рынке, на украинском как то не густо, в Киеве 20-30 заявок, но требований не много, основное - желание учить этот ЯП, так как спрос есть и растет
aadz
веб и микро сервисы, в принципе, основная область, но язык общего назначения
Не знаю как на российском рынке, на украинском как то не густо, в Киеве 20-30 заявок, но требований не много, основное - желание учить этот ЯП, так как спрос есть и растет
Насчет общего применения - пока не согласен. Это язык для серверных приложений, самого разноро плана, но не для графики или пользовальского интрефейса, пока
.
Timur
https://www.infoworld.com/article/2843821/application-development/10-open-source-projects-google-go.html#slide2
aadz
да для всех он адаптирован. Но просто библиотек под UI до сих пор нормальных нет, вот оно и е идет. А так, если на сервере, все множно - от скриптов за 5-10 минут работы, до серьезных сайтов
Timur
kuber, docker, бд, cv, mq
Timur
etc
Timur
что хотите
Timur
всего огромный выбор
Ivan
Всем привет. Изучаю go. Подскажите можно ли тут поспрашивать про тонкости ?
Roman
Большое спасибо
aadz
конечно, нельзя!
aadz
Roman
прекрасно
Timur
Roman https://github.com/golang/go/wiki/Projects
Mikhail
Ivan
в общем у меня есть json
[{
"binary": 0,
"channel": «test_ch»,
"data": {
«mph»: [
["0.11236881", "2.6"],
["0.10267318", "0"]
],
«kph»: [
["0.10234811", "0"],
["0.1023067", "0.097"]
],
"timestamp": 1517772484297
}
}]
я его пытаюсь парсить :
type speed struct {
time float64 json:"string,"
Quantity float64 json:",string"
}
type Data struct {
mph []speed json:»mph»
kph []speed json:»kph»
Timestamp int64 json:"timestamp"
}
type State struct {
binary int64 json:"binary"
channel string json:"channel"
data Data json:"data"
}
msg := State{}
err = json.Unmarshal(message, &msg)
Ivan
json: cannot unmarshal array into Go value of type main.State
Ivan
вот что возвращает
Ivan
уверен что гдето мелкая ошибка - но где - уже второй час бьюсь
aadz
в общем у меня есть json
[{
"binary": 0,
"channel": «test_ch»,
"data": {
«mph»: [
["0.11236881", "2.6"],
["0.10267318", "0"]
],
«kph»: [
["0.10234811", "0"],
["0.1023067", "0.097"]
],
"timestamp": 1517772484297
}
}]
я его пытаюсь парсить :
type speed struct {
time float64 json:"string,"
Quantity float64 json:",string"
}
type Data struct {
mph []speed json:»mph»
kph []speed json:»kph»
Timestamp int64 json:"timestamp"
}
type State struct {
binary int64 json:"binary"
channel string json:"channel"
data Data json:"data"
}
msg := State{}
err = json.Unmarshal(message, &msg)
https://play.golang.org/