Rust and Go у порівнянні - LinuxCommunity

Сучасні методи
Порівняно молоді мови програмування Rust and Go протиставляють своїм усталеним колегам подібні концепції та хитрий синтаксис. Ми показуємо, де двоє забивають на практиці.
Розробник Грейдон Хоар розпочав роботу над новою мовою програмування в 2006 році. Крім усього іншого, написане в ньому програмне забезпечення повинно працювати якомога швидше, а програмісти повинні усунути помилки, пов'язані з управлінням пам'яттю. Фонд Mozilla визнав потенціал мови, яку назвали Rust, і через три роки взяв на себе керівництво проектом. Однак перша стабільна версія була випущена лише після кількох переглядів у травні 2015 року [1].
сталева конструкція
Як і у C та C ++, компілятор перекладає вихідний код, написаний у Rust, у власну програму. В даний час розробники намагаються публікувати нову версію компілятора кожні шість тижнів, яка іноді приносить нові функції. Тому слід вручну встановити поточну версію один раз, що виконує наступна команда:
Потім вийдіть один раз, а потім увійдіть знову. За допомогою оновлення rustup ви завжди будете постійно оновлювати інструмент у майбутньому. Щоб спробувати компілятор, збережіть перелік 1 у текстовому файлі example.rs, а потім встановіть на нього компілятор за допомогою rustc example.rs.
Програма «Іржа» з Лістингу 1 обчислює квадратні метри квартири. Для цього спочатку запитується кількість кімнат, а потім для кожної кімнати ширина та довжина. Для вирішення цих завдань у лістингу 1 спочатку визначається нова функція, яка називається lie_number () у рядку 3 із ключовим словом fn. Він запитує номер і повертає його.
Інформація за стилізованою стрілкою (->) показує, які дані повертає функція. Абревіатура u32 позначає 32-розрядне ціле без знака. Руст також пропонує типи, які базуються на архітектурі. Наприклад, число типу usize - це лише 64-розрядне число в 64-розрядних системах.
Функція lie_zahl () не потребує додаткової інформації для своєї роботи. Якщо це стосується функції, зверніть увагу на параметри в круглих дужках із типом за назвою змінної:
Функція lie_zahl () створює вхідну змінну в рядку 4, використовуючи дві спеціальності Rust. Ви створюєте змінні в Rust за допомогою ключового слова let, при цьому тип змінної зазвичай йде за іменем змінної. У наступному прикладі два будуть зберігати 2 у новій змінній:
Однак вам не дозволено змінювати створену змінну (вона незмінна. Призначення two = 3; призведе до помилки під час компіляції. Ключове слово mut змінює це. Це робить змінну змінною ), з яким працює присвоєння нового вмісту. Ви можете опустити тип змінної, якщо компілятор зможе вивести її однозначно.
Лістинг 1 використовує цю автоматичну систему: вона викликає функцію String: new (), яка повертає порожній рядок. Двокрапки вказують, що new () - це так звана асоційована функція типу даних String - в інших мовах програмування їх називали статичними методами. Оскільки ясно, що вхідні дані містять рядок, тип не вказується при визначенні змінної.
Лістинг 1 підбирає дані в рядку 5. Це зручно робити за допомогою функції, що постачається зі стандартної бібліотеки. Функції, які він містить, поділяються на так звані модулі. Зазвичай ви ставите ім'я модуля перед викликом функції:
Через використання std: io; На самому початку Лістингу 1, однак, у цьому випадку ви зберігаєте собі специфікацію відповідного модуля і безпосередньо викликаєте io: stdin ().
Формуйте ланцюжки
Надані типи даних мають кілька корисних функцій. Наприклад, кожне ціле число пропонує функцію pow (), яку ви можете використовувати для формування потужності: