🏁Александр
что в общей функции
.
Получается да
.
И вытягивает данные по колонке
🏁Александр
ну гоувей это будет копипаст как не странно
🏁Александр
только совсем однотипные можно выносить отдельно
🏁Александр
завтра вам понадобиться int в токене и пойдут "интерфейсы"
.
🏁Александр
GetById(value int)
GetByGroup(value string)
🏁Александр
если к ним делать общую функцию - беда
🏁Александр
у вас тип общего значение будет interface и type switch
.
ну в БД похер что слать в принципе, она и интерефейс схавает, если мы получаем данные
🏁Александр
ну такое
🏁Александр
вместо такого:
func GetById(value int) *Result {
Get("id", value)
}
func GetByGroup(value string) *Result {
Get("group", value)
}
func Get(field string, value interface{}) *Result {
return Select().Where(field, value)
}
лучше сделать так:
func GetById(value int) *Result {
return Select().Where(field, value)
}
func GetByGroup(value string) *Result {
return Select().Where(field, value)
}
🏁Александр
если колбаса с select слишком большая, то выносим
🏁Александр
func GetById(value int) *Result {
return prepare().Where(field, value)
}
func GetByGroup(value string) *Result {
return prepare().Where(field, value)
}
func prepare() *Query {
return Select().Any().AnyFunc()
}
🏁Александр
но никак не "переменные" в обертку
.
Понял, спасибо
.
Какой правильный способ обрезать строку?
.
Слайс не катит
alowave#~
🏁Александр
.
Вылетает паника если верхний предел больше длины строки
🏁Александр
а вы проверьте...
Nazar
math.Min не катит?
🏁Александр
🏁Александр
один не одобрил ага 🙂
🏁Александр
пример можно
.
Вроде строку режет ок
.
И сама строка нормальная на выходе
.
но БД жалуется
pq: invalid byte sequence for encoding "UTF8": 0x00
.
Сейчас покажу
.
string([]rune(NewsTitle)[0:25])
🏁Александр
пример на play
🏁Александр
нене
🏁Александр
код в канал не канает 🙂
.
Пример не могу показать
.
БД жалуется же
.
Как мне это на Плей показать
.
Саму строку оно нормально режет
.
🏁Александр
Postgesql does not supports zero in characters (unlike Oracle). You have to replace such chars with something other (like space).
Here is a similar post to this problem:
http://stackoverflow.com/questions/1347 … g-utf8-0x0
You could implement in a tMap an "cleaning" step: Use this expression:
row1.my_string.replace("\\x00", " ")
Aleksandr
пробовал делать через руны, но что то пошло не так
func substring(s string, offset int64, length int64) string {
end := offset + length
var start int64
var i int64
for range s {
if i == offset {
start = i
}
if i == end {
return s[start:i]
}
i++
}
return s[start:]
}
буквально вчера делал
🏁Александр
я вангую это ваше
.
🏁Александр
Aleksandr
.
Интересно, откуда эти нулевые байты появились?
🏁Александр
а вы распечатайте строку то
.
Я вывел ее
🏁Александр
в []byte("строка")
🏁Александр
сразу увидите что там в байтах
.
Сложно понять что там в байтах
.
Точнее, как понять есть ли там нулевой байт
.
208 161 208 186 208 190 209 128 208 190 32 209 131 209 135 208 181 208 177 208 176 33 0 0 0 0 0 0 0 0 0 0 0 0 0
.
Вся строка
.
А стоп
.
Нули в конце, оно?
🏁Александр
оно
🏁Александр
вы строку можете текстом дать?
.
Скоро учеба!
.
Вот
🏁Александр
что там за секрет полишинеля 🙂
.
Не понимаю откуда оно взялось
.
Видимо понял
🏁Александр
Скоро учеба! - [208 161 208 186 208 190 209 128 208 190 32 209 131 209 135 208 181 208 177 208 176 33]
.
До обрезки все ок
.
После обрезки появились эти байты
🏁Александр
давайте функцию обрезки суда
.
Видимо оно заполнило
🏁Александр
что-то вы там накосячили
.
Aleksandr
это херня а не функция) юзай мою
🏁Александр
тут еще одно
🏁Александр
в фразе "Скоро учеба!" нет 25 символов 🙂
🏁Александр
по хорошему должны были получить slice bounds out of range
.
.
А тут слайс от рун и пашет
🏁Александр
не важно какой слайс