Просто обалденное объяснение! До этого все хотел начать учить раст, куда не глянь жути все гнали за эти владения и тд,, мол сложный не понятный язык, а тут автор просто затащил. Талант объяснять, с первого урока и вплоть до этого с первого захода все ясно, что к чему, спасибо🔥!
Я заметил, что когда человек сам понимает о чём говорит, то чаще всего объяснить даже сложную тему у него получается легко и спокойно, не всегда так работает, но автор явно из таких. Приятно послушать, спасибо огромное за старания. Лайк-подписка, и дальше шагаем тропинке Rust.
Есть уточнения. Память из стека не может освобождаться, это не куча. Процессор имеет регистр указателя на стек, этот указатель просто смещается и все ссылки на значения исчезают сами, раст даже ни чего не делает сам. Это хорошо видно на ассемблере, организация подпрограм call - ret. Из за того, что процессор имеет встроенный регистр на текущее место в стеке, данные быстро читаются и записываются в него, в отличие от значительно медленной кучи. Для опыта работы со стеком можно чуть потренироваться в старом языке программирования forth, что бы не парится с компиляторами типа fasm, tasm или masm.
Спасибо за видео! По части срезов можно написать, например, [0..=3] и тогда будет учитываться последнее значение и срез в данном случае будет из элементов 0, 1, 2, 3
Если я правильно поняла информацию учебника, то есть небольшое дополнение к мутабельным ссылкам. Можно создать в одной области видимости несколько мутабельных ссылок, но с условием, что до объявления следующей &ссылки предыдущая должна быть использована (минимум 1 раз, иначе зачем она вам была нужна) и больше не будет использоваться после объявления новой.
Ну да, вот такая конструкция запросто сработала без ошибок, а если подряд делать два 'let', то уже всё... ошибка! let mut st = String::from("TEXT"); let refer1 = &mut st; println!("{}", refer1); let refer2 = &mut st; println!("{}", refer2);
Подписывайся
Просто обалденное объяснение! До этого все хотел начать учить раст, куда не глянь жути все гнали за эти владения и тд,, мол сложный не понятный язык, а тут автор просто затащил. Талант объяснять, с первого урока и вплоть до этого с первого захода все ясно, что к чему, спасибо🔥!
Ещё не досмотрел все уроки но уже начинаю любить Rust автор просто респектище
Я заметил, что когда человек сам понимает о чём говорит, то чаще всего объяснить даже сложную тему у него получается легко и спокойно, не всегда так работает, но автор явно из таких. Приятно послушать, спасибо огромное за старания. Лайк-подписка, и дальше шагаем тропинке Rust.
Есть уточнения. Память из стека не может освобождаться, это не куча. Процессор имеет регистр указателя на стек, этот указатель просто смещается и все ссылки на значения исчезают сами, раст даже ни чего не делает сам. Это хорошо видно на ассемблере, организация подпрограм call - ret. Из за того, что процессор имеет встроенный регистр на текущее место в стеке, данные быстро читаются и записываются в него, в отличие от значительно медленной кучи. Для опыта работы со стеком можно чуть потренироваться в старом языке программирования forth, что бы не парится с компиляторами типа fasm, tasm или masm.
Спасибо за труд, очень доступно и интересно объясняешь
Upd спасибо комментаторам за доп инфу
Спасибо за видео! По части срезов можно написать, например, [0..=3] и тогда будет учитываться последнее значение и срез в данном случае будет из элементов 0, 1, 2, 3
Спасибо за труд, очень доступно и интересно объясняешь
Отличное видео , ждём продолжения. Хоть эту тему изучал самостоятельно но тебя всегда слушаю
Великолепное объяснение! Спасибо тебе большое)
спасибо, помог вникнуть в тему, т.к. растбук хоть все четко описал, но надо было услышать еще вариант "своими словами"!
Спасибо. Реально доступно и легко объясняешь.
Спасибо вам огромное! Всяческих успехов!
Периодически возвращаюсь к Rust ) очень хорошее видео, чтобы снять ржавчину с темы работы с памятью в ржавчине )
Если я правильно поняла информацию учебника, то есть небольшое дополнение к мутабельным ссылкам.
Можно создать в одной области видимости несколько мутабельных ссылок, но с условием, что до объявления следующей &ссылки предыдущая должна быть использована (минимум 1 раз, иначе зачем она вам была нужна) и больше не будет использоваться после объявления новой.
Ну да, вот такая конструкция запросто сработала без ошибок, а если подряд делать два 'let', то уже всё... ошибка!
let mut st = String::from("TEXT");
let refer1 = &mut st;
println!("{}", refer1);
let refer2 = &mut st;
println!("{}", refer2);
Долго оттягивал до данного урока, по итогу с удовольствием посмотрел! Спасибо за труд и старания!
Спасибо большое автору! Показал всё просто и наглядно :)
Благодарю за видео! Разобрался с этой темой
Спасибо тебе огромное)
Вы забыли рассказать про срез включая последний. Пример &str[1..=4]
👍🏼
👍
Благодарю
Гораздо нагляднее сравнивать стек со "стопкой", где данные сложены в стопку и чтобы достать что-то оттуда - надо снять несколько экземпляров сверху.
Для объяснения, понятия стека, можно привести пример исполнения рекурсией, песнии 99 бутылок пива.
👍👍👍
Тоесть в изменяемые ссылки могут быть по одной в разных областях видимости?
на 45:55 не совсем понимаю зачем в конце функции fn ret() стоит str. В остальном всё понятно, спасибо
Нужно, ибо указали что возвращаем строку
Почему нельзя создавать одновременно mut ссылку и не-mut ссылку?
Чтобы все понимать о чём идёт речь в данном видео изучайте с++, умные указатели
нормальным человеческим языком объяснена самая главная суть раста
Мальчик ты сам подучись и потом бери на себя ответственность учить других! Изучи в первую очередь структуру данных и как они хранятся в памяти.
мальчик, водочки нам принеси. Мы домой летим.
@@RedArmyMan )))
@@dastan331 автор канала молодец, не агрись, бро.
@@RedArmyMan Слушаюсь и повинуюсь бро)
Автор канала, я извиняюсь. Без обид! Я не знаю что на меня нашло в этот день.