Size: a a a

2020 March 03

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Надо оптимзировать самый частый кейс.
То что ты показал специфичная задача. В большинстве своем перегрузка не нужна. Так что давай оптимизировать частый кейс - когда перегрузка не нужна.
источник

EG

Emmanuel Goldstein in rust_offtopic
Тебе система типов всё равно не даст передать неверный аргумент. Никакой ошибки не возникает.
источник

EG

Emmanuel Goldstein in rust_offtopic
Нужна, просто сублимируется макросами в самых болезненных местах.
источник

V

Vabka in rust_offtopic
Т-34 85
И функции в том числе, но больше всего интересуют операторы, методы и конструкторы
Ну операторы перегружаются через трейты.
источник

EG

Emmanuel Goldstein in rust_offtopic
format!() — это как раз перегрузка, variadic arguments, keyword arguments, три самых «ненужных» фичи.
источник

p

polunin.ai in rust_offtopic
Ты привел место в котором нужно всего лишь написать лишнее слово - named. Этого недостаточно
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
format!() — это как раз перегрузка, variadic arguments, keyword arguments, три самых «ненужных» фичи.
Ну и отлично, что это будет сделано в компайл-тайме, а не рантайме
источник

EG

Emmanuel Goldstein in rust_offtopic
Потом я захочу обернуть эту функцию в другую, и мне потребуется каждую реализовывать в двух вариантов, отличающихся только вызовом .execute() и .execute_named().
источник

EG

Emmanuel Goldstein in rust_offtopic
Что и происходит, собственно, если посмотреть на API rusqlite
источник

V

Vabka in rust_offtopic
Т-34 85
Нужна ли перегрузка методов как в C++, Java, C#?
Анонимный опрос
26%
Да, полезная штука
63%
Нет
11%
Не знаю
Проголосовало: 19
С одной стороны штука полезная и прикольная - особенно в конструкторах, тк можно избавиться от всяких билдеров, например, а с другой - а может ну его нафиг, не удобно будет функции в другие функции передавать, если будут перегрузки
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Ну и отлично, что это будет сделано в компайл-тайме, а не рантайме
Не будет? format!() просто создаёт совершенно рантаймовые структуры.
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Не будет? format!() просто создаёт совершенно рантаймовые структуры.
Ошибок в рантайме не будет)
источник

AZ

Alex Zhukovsky in rust_offtopic
Emmanuel Goldstein
Тебе система типов всё равно не даст передать неверный аргумент. Никакой ошибки не возникает.
ты видел линк выше про вывод типов7
источник

p

polunin.ai in rust_offtopic
Vabka
С одной стороны штука полезная и прикольная - особенно в конструкторах, тк можно избавиться от всяких билдеров, например, а с другой - а может ну его нафиг, не удобно будет функции в другие функции передавать, если будут перегрузки
От билдеров спасут аргументы по умолчанию
источник

V

Vabka in rust_offtopic
Emmanuel Goldstein
format!() — это как раз перегрузка, variadic arguments, keyword arguments, три самых «ненужных» фичи.
Но ведь там как раз не перегрузка, а вариадик
источник

EG

Emmanuel Goldstein in rust_offtopic
Я лучше аннотирую лишний раз тип переменной, чем буду каждую функцию в двух вариантах реализовывать.
источник

p

polunin.ai in rust_offtopic
Крч ты назвал один кейс, этого недостаточно для принятия решения о введении перегрузок
источник

EG

Emmanuel Goldstein in rust_offtopic
И ты этого решения в любом случае не принимаешь, ага.
источник

p

polunin.ai in rust_offtopic
Ну попробуй с таким аргументом предложить RFC
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Потом я захочу обернуть эту функцию в другую, и мне потребуется каждую реализовывать в двух вариантов, отличающихся только вызовом .execute() и .execute_named().
Тебе и так придется это делать)
источник