Алексей
Vadim
Черт знает. Вроде бы это не должно ломать обратной совместимости.
Алексей
ну то что я предложил - ключевое слово или оператор для проброса ошибки
Daniel
давайте в конструктивное русло смещаться, коллеги
Daniel
ну то что я предложил - ключевое слово или оператор для проброса ошибки
я говорю - напишите спеку детальную. быстро пройдут шапкозакидательские настроения
Daniel
мне самому очень нравятся reported exceptions в java
Daniel
но кончилось с ними дело плохо
Алексей
так экспешены в го нельзя завезти уже никак
Алексей
и я не про эксепшены вообще
Daniel
еще раз
Daniel
была отличная идея, но люди ее испоганили
Daniel
если очень хочется, можете придумать свою, и посмотреть, что люди сделают с нею
Kirill
спойлер: ничего хорошего
Илья
люди вообще - те еще сволочи :(
Pawel
Мапы слайсы каналы
в них пойнтеры а не ссылки. Ссылки - в джаве, C#-пе и (плохие) в С++
Алексей
в них пойнтеры а не ссылки. Ссылки - в джаве, C#-пе и (плохие) в С++
можно ли указатели называть указателями, если у них нет арифметики указателей?
Kirill
она есть
Kirill
но очень плохая
Daniel
она есть
опять ты учишь детей плохому
Kirill
опять ты учишь детей плохому
это вообще очень страшный мир
Алексей
она есть
так без unsafe же её вроде нет
Dmitry
в них пойнтеры а не ссылки. Ссылки - в джаве, C#-пе и (плохие) в С++
ссылка разве не подобна ненулевому указателю ?
Sebor▂▅▇█▓▒░
Пусть так, чем на улице!
Kirill
вот меня несколько раз не взяли на работу сеньером гофером, в основном из-за того, что интервьюер думал, что знает в гошке всё
Dmitry
окей. вопросов больше не имею
Алексей
вообще ссылки в Java и указатели в Go имеют же почти одинаковое поведение
Kirill
и несли херню из серии "defer дешевый, а ты вообще не знаешь, как работают слайсы, мапы, каналы и так далее. а еще каналы вообще без семафоров в гошке"
Kirill
интервьюер с завышенным чсв
это несколько раз происходило
Dmitry
https://golang.org/doc/faq#references
Kirill
в какой-то момент мне стало лень сраться с интервьюерами, тыкая в сорцы гошки
Pawel
вообще ссылки в Java и указатели в Go имеют же почти одинаковое поведение
разница в том, что в голанге можно работать с объектом через указатели или со значением на стеке. А в джаве - только с объектом по ссылке. И это большой плюс голанга
Kirill
но почему-то как только интервьюер - человек, который хоть раз читал сорцы гошки - споров нет от слова совсем %)
Kirill
надо было с левой по печени ебануть
это удаленка, а если не удаленка - за такое всё равно не хотелось бы ехать обратно в Украину
Pawel
проблема
Kirill
¯\_(ツ)_/¯
саша
коллега, а напишите спеку? (ну, чтобы понимать, что это привет как сложно - хорошая обработка ошибок)
Оператор ?. Ставить после вызова функции, у которой последнее возвращаемое значение типа error. По сути оператор заменяет if err != nil { return err }.
Kirill
но - это моё мнение
Kirill
и что делает этот оператор?
мешает читать код, к сожалению
Dmitry
пробрасывает ошибку на уровень выше, очевидно?
Алексей
мешает читать код, к сожалению
а постоянные if err != nil { return nil, err } не мешают?
Daniel
что значит - пробрасывает? у нас что, по всему стеку идентичный набор возвращаемых значений?
саша
и что делает этот оператор?
Написано же. Если значение ошибки не пустое, то возвращает его из функции. Хотя тут конечно проблема в том, что возвращать в качестве оставшихся возвращаемых значений.
Kirill
что значит - пробрасывает? у нас что, по всему стеку идентичный набор возвращаемых значений?
пробрасывает возвращенную ошибку в последний error в возврате текущей функции
Daniel
а остальные?
Kirill
забивает нулевыми значениями
L
а если функция возвращает несколько значений? то что при операторе "?" пробрасывать наверх?
Kirill
это при условии, что не именованный возврат
Kirill
если именованный - то значение, заданное перед возвратом
L
а при именованном не нужно разве error сначала в переменную записать?
Kirill
это оператор с автодетектом
Kirill
если хотите знать моё мнение после исследования на тему -
Kirill
Daniel
я к тому, что код вокруг этого всего будет не проще, чем if err != nil. но if err != nil хотя бы хорошо отделен от всего остального и полностью очевиден
L
Вот тут жирное обсуждение есть https://github.com/golang/go/issues/21161
саша
магия уже какая-то
Будто в го её мало, одни слайсы чего только стоят
Brommie
привет
Brommie
вот у меня тоже магия, может кто сможет помочь)
Kirill
Будто в го её мало, одни слайсы чего только стоят
не путай магию и дефолтную структуру данных
Pawel
я к тому, что код вокруг этого всего будет не проще, чем if err != nil. но if err != nil хотя бы хорошо отделен от всего остального и полностью очевиден
вот именно. И не всегда в блоке if будет одна единственная инструкция return. Это вообще редко, может в 20% случаев