Первый пример разобран. Первые впечатления о принципах работы языка: язык вполне доставляет своей строгостью и огромным количеством всяких плюшек, по типу использования ссылок на переменные вместо самих переменных или переносом части длинного выражения на другую строку. Мелочь, а приятно. Большое количество плюшек вместе со всей строгостью языка это также и минус. Пришлось перечитывать один и тот же абзац несколько раз, чтобы понять что делает та или иная новая строчка в коде. Но, мои попытки понять не были напрасны, я всё закомментировал и аккуратно уложил примерчик в папку.
Попытался разобрать второй пример: https://rurust.github.io/rust_book_ru/dining-philosophers.html Может из-за усталости за день, может из-за того, что я тупой дебил но толком ничего не понял. Пока разбил на примеры использования разных структур языка, закомментил и уложил в отдельную папку. Разбираться в совокупности этих структур в примере буду уже завтра, наверное.
>>1400 > dining-philosophers.html > Теперь мы можем начать моделирование задачи. Начнём с философов в src/main.rs: > let p1 = Philosopher::new("Джудит Батлер"); > let p2 = Philosopher::new("Рая Дунаевская"); > let p4 = Philosopher::new("Эмма Гольдман"); > let p5 = Philosopher::new("Анна Шмидт");
>>1414 Там в основном показана работа с крейтами. И все равно придется читать главы соответсвующие книге. Иначе некоторые особенности останутся непонятны.
>>1417 У меня раскладки не было чел, был сонный но все равно пытался!
Опчик, хочу предупредить от ошибки новичка, на которую сам попался. &T - это общая ссылка (расшаренная), а &mut T - эксклюзивная ссылка, которая может быть только одна.
Это связано с мутабильностью только косвенно, поскольку &T гарантирует что ДАЖЕ ЕСЛИ ИЗМЕНЕНИЕ "T" и возможно из другого потока, это именение не вызовет гонки по данным. Пример AtomicU32 метод store которого принимает &self, но при этом меняет значение - внутреннее состояние AtomicU32. Поскольку это изменение атомарно, оно возможно из многих потоков одновременно даже если ссылка &T
Сейчас пишу маленькую программу, которая проводит манипуляции с файлами. Вчера возникла проблема, которую не могу решить: требуется засунуть вектор строк в файл, но при добавлении возникает ошибка - метод ждёт u8.