Для тех, кто не слышал о Rust, это язык системного программирования, который фокусируется на скорости и параллелизме, а также обеспечивает безопасность памяти. Это потрясающее преимущество для Rust и причина того, что он станет основным игроком в будущем. По данным Chrome, 70% ошибок безопасности в программном обеспечении - это проблемы с безопасностью памяти. Внедрение такого языка, как Rust, где компилятор гарантирует отсутствие уязвимостей безопасности памяти, устранит огромный процент ошибок безопасности и поможет создавать более безопасное программное обеспечение. Это одна из причин, почему это отличный язык для изучения и внедрения в проекты.

Я недавно начал изучать язык программирования Rust, и хотя мой прошлый опыт программирования в основном касался языков высокого уровня, я нашел Rust очень интересным и увлекательным для изучения. Многие высокоуровневые программисты, такие как я, обнаружили, что это правда благодаря интуитивно понятному синтаксису Rust, который дает вам ощущение высокого уровня, при этом позволяя вам иметь производительность и контроль над низкоуровневыми языками, такими как C или C ++. Это позволило многим программистам высокого уровня, таким как я, заняться программированием низкого уровня.

Итак, сегодня я расскажу вам, как приступить к работе с Rust, а затем покажу, как создать простой инструмент командной строки, который вы можете использовать и развивать самостоятельно.

Чтобы начать работу с Rust, используйте эту ссылку, чтобы установить его на свой компьютер: https://doc.rust-lang.org/book/ch01-01-installation.html. После того, как вы завершите процесс установки и настройки, мы можем начать с простого примера hello world.

Перейдите в каталог, в котором вы хотите разместить свой проект, и выполните команду:

Затем cd (или dir, если вы работаете в Windows) войдите в каталог и запустите команду ls -l, чтобы увидеть, какие файлы были созданы для вас с помощью Cargo, менеджера пакетов Rust.

Как вы можете видеть на рисунке 3, для вас созданы файл Cargo.toml и каталог src. cd в каталог src и откройте файл main.rs, который вы там найдете.

Как только вы откроете файл main.rs в своем редакторе, вы должны увидеть этот пример кода hello world:

Cargo автоматически настраивает вас с помощью простой программы hello world в файле main.rs, чтобы вы могли начать работу. Все, что вам нужно сделать на этом этапе, - это снова запустить программу в вашем терминале с помощью команды «cargo run» в каталоге вашего проекта. Это скомпилирует программу, запустит ее и выведет текст «Hello, world!» в вашей командной строке.

Вы запустили свою первую программу на Rust! Пришло время построить свой собственный.

Итак, вы узнали, как настроить Rust на вашем компьютере и как запустить простую программу hello world. Теперь я покажу вам, как создать простой инструмент командной строки с использованием языка Rust. Если вы знакомы с инструментами командной строки, вы, вероятно, знакомы с командой cat. Он может делать много вещей, включая создание одного или нескольких файлов, просмотр содержимого файла, объединение файлов и перенаправление вывода в терминал или файлы.

В этом руководстве мы собираемся создать упрощенную версию инструмента cat, которая может выводить содержимое файла в командную строку!

По мере прохождения этого проекта мы рассмотрим:

(1) Настройка каталога проекта

(2) Использование аргументов командной строки

(3) Работа с файлами

(4) Обработка ошибок

(1) Настройка каталога проекта

Для начала давайте создадим новый каталог для вашего проекта, выполнив команду на рисунке 5:

Эта команда просит Cargo создать для вас новый проект с именем rust_cat. Теперь вы можете перейти в каталог src проекта, выполнив команду, показанную на экране 6:

(2) Использование аргументов командной строки

Первый шаг в создании этого кошачьего инструмента - получение данных из командной строки или аргументов от пользователя. На рисунке 7 ниже показан код, который принимает аргументы командной строки и превращает их в вектор, который будет использоваться.

Используемая здесь функция сбора может использоваться для создания многих типов аргументов, поэтому нам нужно указать, что нам нужен вектор строк с Vec ‹String›. Затем эта программа выводит его в командную строку.

Оператор использования в верхней части программы предназначен для переноса модуля std :: env в область видимости, чтобы мы могли использовать функцию args. С помощью этого кода мы можем запустить программу, дать ей аргумент, и она выведет его в командную строку. В каталоге вашего проекта запустите команду cargo run hello. У вас должен получиться результат, аналогичный показанному на рисунке 8 ниже:

Как видите, командная строка выводит два аргумента: [«путь к файлу», «слово, которое вы ему дали»]. Это хороший первый шаг к созданию нашего командного инструмента для кошек.

Теперь, когда мы ввели аргументы командной строки в нашу программу, нам нужно сохранить аргументы в переменных, чтобы использовать их в дальнейшем. Как мы видели при запуске программы, arg [0] используется для пути к файлу программы, а arg [1] - это место, где был сохранен наш первый ввод. Итак, нам нужно начать с arg [1] при приеме аргументов в переменные. На рисунке 9 показано, как мы должны настроить код, чтобы он принимал аргументы командной строки и помещал их в выходные данные переменной.

При повторном запуске «cargo run hello» вы увидите, что слово hello выводится само по себе в командной строке, как показано на рисунке 10:

(3) Работа с файлами

Наш инструмент cat может выводить ввод в командную строку, но теперь он нам нужен для работы с файлами, чтобы мы могли выводить содержимое файла в командную строку.

Чтобы реализовать эту функциональность, давайте создадим текстовый файл в нашем каталоге для использования в нашей программе. Я создал файл с именем text.txt и поместил в него две строки текста, как показано ниже на рисунке 11:

Теперь нам нужно разрешить пользователю вводить, какой файл он хочет использовать. Мы сделаем это, взяв имя файла в качестве аргумента, как мы это делали для слова «привет» в предыдущем примере. Для этого нам нужно взять имя файла как arg [1], затем прочитать содержимое файла в виде строк и затем вывести их обратно в командную строку с помощью оператора печати.

На рисунке 12 показано, как реализовать эту функцию.

На этом шаге нам нужно добавить еще один оператор использования (используйте std :: fs), чтобы включить часть стандартной библиотеки, которая обрабатывает файлы.

После установки имени файла в качестве первого аргумента, полученного из командной строки, нам нужно прочитать файл. Для этого мы использовали оператор fs :: read_to_string, который принимает имя файла, открывает этот файл, а затем возвращает строку с содержимым файла.

Теперь мы можем запустить программу с вводом имени файла, написав файл cargo run text.txt, как показано на рисунке 13. Вы также должны получить вывод файла, как показано ниже:

(3) Обработка ошибок

Наша программа сейчас делает то, что мы хотели! Он выводит содержимое файла в командную строку. Однако, прежде чем мы вызовем его завершение, важно добавить некоторую обработку ошибок, чтобы упростить работу инструмента для пользователей.

Если бы пользователь ввел команду Cargo run и не добавил имя файла, которое он хотел бы вывести, он получил бы сбивающую с толку ошибку, которую он мог бы не понять. Итак, чтобы исправить это, давайте добавим оператор if, который выводит «Недостаточно аргументов», если пользователь не включает имя файла.

Теперь, когда мы запускаем команду без включения имени файла, мы получаем сообщение о том, что мы не включили достаточно аргументов!

Ура! У вас есть рабочий инструмент командной строки, встроенный в Rust! Вы можете добавить больше обработки ошибок или больше функций, чтобы сделать этот инструмент еще лучше. Это должно было быть введением в язык Rust, чтобы дать вам начало вашему путешествию по изучению Rust.

Сообщите мне, какие изменения вы внесли в инструмент cat, чтобы сделать его лучше, и какие еще инструменты вы создаете с помощью Rust. Я продолжу публиковать статьи об изучении Rust, а также о других технологиях и языках программирования, которые могут вас заинтересовать. Так что, если вам понравилось читать эту статью, подпишитесь на нее.