@@АнтонДидиченко-н5х это курс не для фронтендеров или питонистов, а для настоящих программистов. Как несложно заметить по вопросам аудитории, там и плюсовики, и джависты. Лектор не говорит ничего лишнего.
@@АнтонДидиченко-н5х этим как раз лекции и ценные, что лектор очень хорошо рассказывает про сложные внутренности языка. Знание этого помогает понять многие вещи, вместо того, чтобы просто заучивать. В инете полно материалов для начинающих по Расту, но из реально глубоких и качественных материалов для опытных программистов я только эти лекции нашел.
Замечание насчет строк в кодировке UTF-8. Насколько могу судить, Алексей *не совсем* прав, когда говорит, что строки в этой кодировке могут иметь внутри нулевой байт. Схема кодирования этого не допускает. Любые символы, которые представляются двумя и более байтами, в первом байте в двух старших битах будут иметь '11', а в следующих байтах - '10', то есть нулевой байт там встретиться не может; в однобайтовом символе 0 может содержаться, но тогда это и есть символ 'NUL', то есть тот самый маркер конца строки. Собственно, это одна из причин, по которой строки в кодировке UTF-8 без проблем обрабатываются функциями стандартной библиотеки C, которые, казалось бы, рассчитаны на работу с ASCII (например, strstr() сработает независимо от того, обе строки в UTF-8 или обе строки в ASCII). Чисто теоретически, можно представить ситуацию, когда внутри UTF-8 строки встречается нулевой байт, после которого строка продолжается и содержит другие байты. Тогда эта строка не сможет быть обработана (целиком) функциями стандартной библиотеки C. Однако это то же самое, когда внутри строки в однобайтовой кодировке встречается нулевой байт. Такая строка тоже будет некорректно обрабатываться функциями стандартной библиотеки C. На практике лично мне не приходилось сталкиваться с ситуациями, когда "неповрежденные" строки в кодировке UTF-8 содержали внутри нулевой байт. Видимо, наиболее вероятные случаи, когда можно столкнуться с чем-то подобным - вывод утилит типа xargs с флагом -0 или find с флагом -print0.
Уже сильно лучше -- из него убрали бесполезный description, и пофиксили возможность downcast. Скоро ещё грозятся сделать поддержку бектрейсов, и тогда вообще хорошо будет. Ещё со времён лекции появилось два новых крейта, anyhow и thiserror, они в целом правильно кодифицируют большую часть дизайна.
Прослушал 7 лекций за 2 дня и еще в запасе 6 лекций👍.
Супер крутые лекции❤
Отличные лекции! Спасибо
43:54 - rustc тоже иногда может девиртуализовать вызов.
Судя по все убывающему кол-ву комментариев на каждый следующий урок все меньше народу добирается 😆
Язык непростой. Требуется много обдумывания, особенно если нет опыта программирования на низком уровне
@@АнтонДидиченко-н5х это курс не для фронтендеров или питонистов, а для настоящих программистов. Как несложно заметить по вопросам аудитории, там и плюсовики, и джависты.
Лектор не говорит ничего лишнего.
@@АнтонДидиченко-н5х этим как раз лекции и ценные, что лектор очень хорошо рассказывает про сложные внутренности языка. Знание этого помогает понять многие вещи, вместо того, чтобы просто заучивать. В инете полно материалов для начинающих по Расту, но из реально глубоких и качественных материалов для опытных программистов я только эти лекции нашел.
Замечание насчет строк в кодировке UTF-8. Насколько могу судить, Алексей *не совсем* прав, когда говорит, что строки в этой кодировке могут иметь внутри нулевой байт. Схема кодирования этого не допускает. Любые символы, которые представляются двумя и более байтами, в первом байте в двух старших битах будут иметь '11', а в следующих байтах - '10', то есть нулевой байт там встретиться не может; в однобайтовом символе 0 может содержаться, но тогда это и есть символ 'NUL', то есть тот самый маркер конца строки.
Собственно, это одна из причин, по которой строки в кодировке UTF-8 без проблем обрабатываются функциями стандартной библиотеки C, которые, казалось бы, рассчитаны на работу с ASCII (например, strstr() сработает независимо от того, обе строки в UTF-8 или обе строки в ASCII).
Чисто теоретически, можно представить ситуацию, когда внутри UTF-8 строки встречается нулевой байт, после которого строка продолжается и содержит другие байты. Тогда эта строка не сможет быть обработана (целиком) функциями стандартной библиотеки C. Однако это то же самое, когда внутри строки в однобайтовой кодировке встречается нулевой байт. Такая строка тоже будет некорректно обрабатываться функциями стандартной библиотеки C.
На практике лично мне не приходилось сталкиваться с ситуациями, когда "неповрежденные" строки в кодировке UTF-8 содержали внутри нулевой байт. Видимо, наиболее вероятные случаи, когда можно столкнуться с чем-то подобным - вывод утилит типа xargs с флагом -0 или find с флагом -print0.
1:24:00 А что за вопрос был?
Подозреваю, что вопрос был о том, можно ли преобразовать Vect в Vec для формирования строки.
50:24 Скажите, а в слайдах наверно ошибка, должно быть Self = mut dyn Iterator или я не поняла?
Вроде всё верно, &mut dyn.
"наш Self" тут -- это `it` из `with_any_iterator`
std::error::Error всё ещё плох, или уже норм? Что с ним вообще не так?
Уже сильно лучше -- из него убрали бесполезный description, и пофиксили возможность downcast. Скоро ещё грозятся сделать поддержку бектрейсов, и тогда вообще хорошо будет. Ещё со времён лекции появилось два новых крейта, anyhow и thiserror, они в целом правильно кодифицируют большую часть дизайна.
Раст конечно лавкрафтианский язык, ведь в нем есть НЕВЫРАЗИМОЕ
Ох и тяжело слушать такой голос :)