Andrey
если вдруг появляется функция, которой нужен объект с такими свойствами, то тогда да
Andrey
а до этого - зачем заморачиваться?
Roman
https://play.golang.org/p/Sr0on5d2XLR
Roman
сейчас true false false
Roman
а надо чтобы true false true
Roman
такое нужно для гибкости, например, есть разные значения с разными методами, которые хочется передать в интерфейсный тип без использования interface{}
Roman
в параметр функции с одним интерфейсным типом
Roman
тут встраивание не помогает (кажется)
Mikhail
Andrey
Andrey
не удовлетворяет же обобщённому интерфейсу
Andrey
для true в конце надо оба метода имплементировать
Andrey
Andrey
такой ReaderOrWriter получается
🎉
Люди, покажите кусочек кода как обходить эту чёртову проблему?
Scan error on column index 2: converting driver.Value type <nil> ("<nil>") to a int: invalid syntax
Вот образец наваял для примеру. https://play.golang.com/p/zYxJ2afP4lY
🎉
Решение знаю, надо в структуре указать sql.NullInt64 и sql.NullString, только что-то это не работает.
Andrey
не работает, в том смысле, что ошибка та же самая?
heavycharged
так у тебя там все NULL кроме ID и DateTime
heavycharged
а в структуре по другому
Andrey
если поле может быть NULL то оно не "влазит" в тип int или string
heavycharged
Ну судя по DDL в конце, у тебя все NULL кроме ID и DateTime, следовательно либо дату/ либо структуру.
heavycharged
там не важно хранится в поле NULL или нет для конкретной строки
heavycharged
там важна сама возможность хранить в этом столбце NULL
🎉
Вот спасибо, щас поковыряюсь.
Oleh
Подскажите пожалуста
type Dialer struct {
// Timeout is the maximum amount of time a dial will wait for
// a connect to complete. If Deadline is also set, it may fail
// earlier.
//
// The default is no timeout.
//
// When using TCP and dialing a host name with multiple IP
// addresses, the timeout may be divided between them.
//
// With or without a timeout, the operating system may impose
// its own earlier timeout. For instance, TCP timeouts are
// often around 3 minutes.
Timeout time.Duration
Oleh
если я буду ставить Dialer для многих конектов
Oleh
то Timeout будет для каждого отдельно считатся?
Aleksandr
очевидно да
Pawel
А есть либа, в которой прописана арифметика для sql.NullFloat64? че та гугел не кажет
Andrey
а что значит арифметика?
Pawel
плюс-минус-умножить-разделить
Zhenja
Null * 0 ?
Alexei
ну так возьми его float64 если он валиден и перемножай на здоровье или реагируй на невалидность
Andrey
Null * 0 ?
Если бы чат был не про го, можно было бы развести дискуссию)
Anonymous
что посоветуете прочесть про Go
Anonymous
?
Alexei
http://golang-book.ru/
Anonymous
спасибо
Alexei
этого достаточно, как мне кажется. Если знаком с программированием вообще.
Anonymous
а если не знаком
Anonymous
а только кратко мелко
Pawel
Спасибо конечно за мудрые советы, но иногда хочется странного - не писать функции на подобие такой вот (как у меня сейчас) для каждого подобного типа данных, которых у меня внезапно дофига образовалось. это несколько заёбывает
func Add(x, y sql.NullFloat64) (r sql.NullFloat64){
r.Float64 = x.Float64 + y.Float64
r.Valid = x.Valid && y.Valid
return
}
Andrey
Anonymous
Pawel
нене, я ленивый - хочеца готового рабочего кода
Andrey
Надо просто отказаться от null в базе
Andrey
Он, кстати, занимает лишнее место
Anonymous
Или отказаться от Go для решения данной задачи.
Andrey
Вариант =)
Andrey
0
Andrey
Null * 0 ?
А если у вас не 0, то ответьте на этот вопрос.
Pawel
ага, щас. 0 - это нормальное значение, а магические константы как известно зло
Andrey
Почему у вас возникает необходимость хранить null для типа float64?
Pawel
Andrey
стандартный случай это not null default 0
Andrey
у вас же я вижу боль от непродуманного хранения данных
Andrey
Делайте что хотите и мучайтесь со своими решениями, мне правда не принципиально, чтобы вы приняли мою точку зрения)
Pawel
стандартный случай это not null default 0
🤦♂️
Я выше написал: 0 - это нормальное значение, оно вовсе не означает что значения нет. Для Вас это по всей видимости понять слишком сложно. Ок. Вы не разбираетесь в этом. Нет смысла Вам высказываться на эту тему.
Anonymous
Andrey
Вы правы
Pawel
Dmitry
Dmitry
поэтому и рекомендуют использовать нулевые значения, для стабильности программы.
Andrey
Да прост, чтоб не писать в миллионе мест if sql.NullFloat64.Valid()
Andrey
Anonymous
Илья
Anonymous
Pawel
Илья
Тогда продолжайте хотеть странного, https://gist.github.com/Rubentxu/c353cac8f18321dbd96d/
Pawel
Илья
Вы хотите мейби монаду, но в общем виде она вам не понравилась. Попробуйте кодогенерацию, может с той стороны зайдет, но ни то, ни другое не go way, насколько я понимаю
🏁Александр
O_o