Firefox 46 будет поддерживать работу с несколькими мониторами с разной плотностью пикселей
1 min
User
try!
и типа Result
, до неопределённого момента после первого релиза языка программирования Rust.Result { Ok(value), Err(why) }
и макрос try!
. Тип Result
представляет из себя перечисление (enum), похожее на Option { Some(value), None }
и связанное с ним по смыслу. Вариант None
типа Option
говорит об отстутствии значения, а вариант Err(why)
типа Result
уточняет, почему значение отсутствует.Result
из функций, чтобы передавать значение возврата или причину, по которой значение вернуть не удалось. Макрос try!
в свою очередь позволяет автоматически возвращать Err(why)
из текущей функции, если вызов другой функции не удался (применяется к объекту типа Result
).Я стал замечать, что чем более опытным я становлюсь, тем больше времени у меня занимает выполнение проектов или задач. Я не теряю квалификацию от возраста, нет. Проблема в том, что я вижу слишком много способов чему-то сломаться. А количество потенциальных ошибок и просто нюансов, о которых мне известно, становится всё больше и больше.
Простой пример: раньше я просто записывал данные в файл. Теперь я думаю о правах доступа, занятии файла другим приложением, многопоточности, атомарных операциях, фреймворках, разных файловых системах, количестве файлов в директории, предсказуемых названиях временных файлов, качестве моего ГПСЧ, отключении электричества во время любой операции, адекватном API для моего кода, нормальной документации и так далее.