Полезно, но с сожалению эта фича опт-ин. Далеко не каждая библиотека будет требовать ограничение шаблонного параметра. В расте же ограничения на женерики тотальны, они есть всегда и везде, даже в собственном коде
@@GhostVlVinдо с++20 тоже есть sfinae... enable_if, void_t, bool_constant и прочее с std::type_traits. Концепты с 20-ых это просто синтаксический сахар для этого ужаса. Потому что шаблонный код на плюсах это ультра error-prone вещь, в которой ещё и надо вычитывать огромный список попыток инстанцирования в случае ошибки. В раст это сделано билт ин и можно заранее диагностировать, хотя и есть некоторые ограничения
приводились примеры на С++, озвучилось, нет уточнений классов, начиная с 20 стандарта, появились концепты, мне, кажется, это про это. Не то, чтобы это было важно, да и повествование, сильно не меняет, и я вообще не пользовался этими самыми концептами, да и не озвучивается какой конкретно стандарт имеется в виду, да и не по С++ канал. Во всяком случае, спасибо автору за его труд!!!
Я несколько изучил приёмы C++, которые позволяют делать что-то похожее на Rust, но не нашёл ничего хотябы приблизительно простого и очевидного как в Rust. Концепты и static_assert внутри темплейтов представляются мне больше хаками, чем естественно вписывающимися в логику языка элементы Rust
У меня просьба, пожалуйста. Я никогда не изучал ни С ни С++, вы делаете сноски на эти языки это очень хорошо для других, но меня это путает. Вы добавляете логотипы языков чтоб было всем понятно это супер удобно, но есть некоторые места где нет логотипа и они я так понимаю на RUST, но вы переодически делаете словесные сноски на языки С в результате я путаюсь. Пожалуйста добавляйте во все части кода логотипы языков. Пусть будет маленькая пометочка логотипа RUST на всех частях кода. Спасибо за Ваш вклад в уроки - я очень благодарен и ценю Ваш труд.
Видео хорошее! Но на минуте 6-ой, когда начинается пример с `trait From`, мне кажется там ошибка в имплементации трейта: там где километры должно быть `* 1000.0`, а где миллиметры - `/ 1000.0`. А может я не до конца уловил реализацию `trait From` )
@@mk72v2oq Я оказался всё-таки прав, там ошибка (видимо автор канала перепутал операции). К сожалению удалили комментарий с ответом, в котором была ссылка на песочницу с кодом, не поленитесь и воспроизведите его.
@@mk72v2oq Я оказался всё-таки прав, там ошибка (видимо автор канала перепутал операции). К сожалению удалили комментарий с ответом, в котором была ссылка на песочницу с кодом, не поленитесь и воспроизведите его.
В некоторых случаях автор натягивает Раст реализацию на Котлин, и говорит что там так нельзя. Да, нельзя, но в котлине так не делают. А так как делают - там проблем нет
Kotlin тут служит как пример работы дженериков в большинстве языков - понятно, что он изначально создавался под другие задачи, но я хочу сказать, что некоторые паттерны Rust просто не реализуемы в других языках, что и делает его уникальным
"Два вида дженериков" режет слух. Всё-таки правильное название для "type: T" это "асоциированный тип". Такой вид записи, через "type: T", показывает, что тип T должен быть определён в impl блоке.
Абсолютно не интересен раст. Но превью, название видео, название и ава канала… все так стильно, достаточно просто и стильно.. в общем просто лайк поставил и ушел
типа как некие модели скелетов приложений? если так, то имеет смысл, новичкам тяжело понять с чего начать. да, Автор годно составляет, озвучивает материал.
Абсолютно не интересен раст. Но превью, название видео, название и ава канала… все так стильно, достаточно просто и стильно.. в общем просто лайк поставил и ушел
Я сам не на расте, а на плюсах, но видосы у тебя оч интересные и красивые. Продолжай в том же духе!
_с c++20 можно указывать ограничения вот так:_
template
requires std::is_same::value
T sum(T a, T b) {
return a + b;
}
Полезно, но с сожалению эта фича опт-ин. Далеко не каждая библиотека будет требовать ограничение шаблонного параметра. В расте же ограничения на женерики тотальны, они есть всегда и везде, даже в собственном коде
@@nanoqsh в этом и есть философия плюсов, что никто ничему не заставляет, хочешь писать ансейф код - сидишь пишешь довольный
@@pkowak в общем, философия писать код как попало
До с++20 можно было впилить static_assert(std::same_is) первой строчкой и тогда код не скомпилируется с ассерта
@@GhostVlVinдо с++20 тоже есть sfinae...
enable_if, void_t, bool_constant и прочее с std::type_traits. Концепты с 20-ых это просто синтаксический сахар для этого ужаса. Потому что шаблонный код на плюсах это ультра error-prone вещь, в которой ещё и надо вычитывать огромный список попыток инстанцирования в случае ошибки.
В раст это сделано билт ин и можно заранее диагностировать, хотя и есть некоторые ограничения
Было бы круто разобрать какой-нибудь популярный крейт, типа Serde или Tokio.
на англ языке есть.
очень хороший видос, ставлю класс
приводились примеры на С++, озвучилось, нет уточнений классов, начиная с 20 стандарта, появились концепты, мне, кажется, это про это.
Не то, чтобы это было важно, да и повествование, сильно не меняет, и я вообще не пользовался этими самыми концептами, да и не озвучивается какой конкретно стандарт имеется в виду, да и не по С++ канал.
Во всяком случае, спасибо автору за его труд!!!
Я несколько изучил приёмы C++, которые позволяют делать что-то похожее на Rust, но не нашёл ничего хотябы приблизительно простого и очевидного как в Rust. Концепты и static_assert внутри темплейтов представляются мне больше хаками, чем естественно вписывающимися в логику языка элементы Rust
У меня просьба, пожалуйста. Я никогда не изучал ни С ни С++, вы делаете сноски на эти языки это очень хорошо для других, но меня это путает. Вы добавляете логотипы языков чтоб было всем понятно это супер удобно, но есть некоторые места где нет логотипа и они я так понимаю на RUST, но вы переодически делаете словесные сноски на языки С в результате я путаюсь. Пожалуйста добавляйте во все части кода логотипы языков. Пусть будет маленькая пометочка логотипа RUST на всех частях кода. Спасибо за Ваш вклад в уроки - я очень благодарен и ценю Ваш труд.
спасибо за материалы, может, как нить попробуешь ещё стрим и чтобы тема не была такой большой как делать майнкрафт.
Емко и понятно!
Хороший канал! Что за тема VScode?
Она называется Rusty Colors и я её автор:
marketplace.visualstudio.com/items?itemName=ioannuwu.vscode-rusty-colors
Видео хорошее!
Но на минуте 6-ой, когда начинается пример с `trait From`, мне кажется там ошибка в имплементации трейта: там где километры должно быть `* 1000.0`, а где миллиметры - `/ 1000.0`.
А может я не до конца уловил реализацию `trait From` )
Там все правильно. Слово "from" переводится как "из". То есть конвертация ИЗ километров и ИЗ миллиметров в метры.
@@mk72v2oq Я оказался всё-таки прав, там ошибка (видимо автор канала перепутал операции).
К сожалению удалили комментарий с ответом, в котором была ссылка на песочницу с кодом, не поленитесь и воспроизведите его.
@@mk72v2oq Я оказался всё-таки прав, там ошибка (видимо автор канала перепутал операции).
К сожалению удалили комментарий с ответом, в котором была ссылка на песочницу с кодом, не поленитесь и воспроизведите его.
Там всё-таки ошибка, проверил в песочнице.
харош
База
В некоторых случаях автор натягивает Раст реализацию на Котлин, и говорит что там так нельзя. Да, нельзя, но в котлине так не делают. А так как делают - там проблем нет
Kotlin тут служит как пример работы дженериков в большинстве языков - понятно, что он изначально создавался под другие задачи, но я хочу сказать, что некоторые паттерны Rust просто не реализуемы в других языках, что и делает его уникальным
"Два вида дженериков" режет слух. Всё-таки правильное название для "type: T" это "асоциированный тип". Такой вид записи, через "type: T", показывает, что тип T должен быть определён в impl блоке.
Абсолютно не интересен раст. Но превью, название видео, название и ава канала… все так стильно, достаточно просто и стильно.. в общем просто лайк поставил и ушел
Так почему не интересен? Почему бы не начать на нём писать?
Лучший рускоязычный канал по расту, как насчёт того что бы разобрать дизайн-паттерны в расте? :)
Было бы славно
типа как некие модели скелетов приложений?
если так, то имеет смысл, новичкам тяжело понять с чего начать.
да, Автор годно составляет, озвучивает материал.
Поддерживаю оба высказывания
@@XeliyataOwO взаимно.
@@PublicAccount0read about OOP patterns
Абсолютно не интересен раст. Но превью, название видео, название и ава канала… все так стильно, достаточно просто и стильно.. в общем просто лайк поставил и ушел