В расте нет перегрузки методов. То есть хочешь сделать logger.info(args) шиш тебе. Вроде в ночных сборках компилера можно страшным бубном что то для перегрузки функций сделать, но бубном и я не смотрел еще. Хочу простого result.expect_with_msg(msgid, msg_arg1, msg_arg2...) так низя, только макрос пили и вызывай.
@apxont мне раст нравится, есть особенности вроде этой, но в целом норм, плюсов больше. Я еще разбираюсь, хорошо пока. Но я и с С++, С, java и прочими соседями знаком...так что в целом мне давно пофиг на чем писать, только особенности и интересно выяснять...зачем этот лом загнули на тридцать градусов и воткнули в поле :) В остальном все плюс минус одно.
@apxont вот конкретно обсуждение перегрузки
https://users.rust-lang.org/t/is-there-a-simple-way-to-overload-functions/30937/40
Я не люблю магию в языках, когда что то происходит "автоматически" потому, что в другом конце мира чувак запилил где-то что то и оно у тебя внезапно сработало хотя из текста, что ты читаешь это не следует и надо знать, что там чувак насочинял и еще миллион чуваков.
@apxont а вот целая статья
https://medium.com/swlh/function-overloading-in-rust-d591aff64a03
Но я ее потом прочитаю, завтра. Просто наткнулся ближе к концу копаний, там как раз описана перегрузка, которую вроде как в ночных сборках таки запилили и почему это плохо...скорее всего :)
@3draven
я такого вообще никогда не встречал. я думаю, мне никогда такое не пригодилось бы.
или где оно нужно?
@apxont когда у тебя сотни сервисов все собирается в прометей и оттуда летят алерты. К прометею прикручивается графана и у тебя вся инфра на ладони. Вешается телек в офисе с графиками что бы людей пугать.
@3draven я про перезагрузку функций ) в расте в частности
@apxont блин, увидел нотификацию и тред перепутал :) Зачем конкретно это, трудно сказать. Думаю вред один. Вот перегрузка методов в трейте иногда была бы удобна, а то мне для логирования без макросов придется сейчас сделать get_message_0 1 2 3 :) Либо везде вставлять макрос специальный
@apxont но я наверное тащу свои привычки в чужой монастырь.
@apxont буду вставлять макрос. Типа такого result.expect(get_message!(Args)) это не то, что мне хотелось бы, но пойдет.
@3draven ну, удачи ))
а я уж не знаю, когда снова до раста доберусь
@apxont Да, нравится он мне по конкретной причине. Все эти особенности порождены простой мыслью. Код должен выражать то, что он делает. Без магии (тут Deref выбивается основательно). Иначе получится котлин или javascript. Народ отсутствие перегрузки объясняет себе именно этим, а так же дефолтных параметров и прочего...типа хочешь что то сделать, напиши это, у функций потому имена разные надо.