Rust and Go во споредба - LinuxCommunity

програмски јазици

Современи методи

Релативно младите програмски јазици Rust и Go им се спротивставуваат на нивните етаблирани колеги со слични концепти и чиста синтакса. Покажуваме каде постигнуваат двајцата во пракса.

Инвеститорот Грејдон Хоар започна да работи на нов програмски јазик во 2006 година. Меѓу другото, софтверот напишан во него треба да работи што е можно побрзо и програмерите треба да го олеснат управувањето со меморијата склона кон грешки. Фондацијата Мозила го препозна потенцијалот на јазикот, наречен Руст, и го презеде управувањето со проектот три години подоцна. Сепак, првата стабилна верзија беше објавена само по неколку ревизии во мај 2015 година [1].

челична конструкција

Како и со C и C ++, компајлерот го преведува изворниот код напишан во Rust во мајчин програм. Програмерите во моментов се обидуваат да објавуваат нова верзија на компајлерот на секои шест недели, што понекогаш носи нови функции. Затоа, треба рачно да ја инсталирате тековната верзија еднаш, што ја прави следнава команда:

Потоа одјавете се еднаш и потоа најавете се повторно. Со ажурирање на ажурирање, во иднина секогаш ќе ја одржувате ажурираната алатката. За да го пробате компајлерот, зачувајте го списокот 1 во текстуалната датотека пример.рс и потоа поставете го компајлерот со rustc example.rs.

Програмата 'Рѓа од списокот 1 пресметува квадратни метри на стан. За да го направите ова, прво се прашува за бројот на просториите, а потоа за секоја просторија ширината и должината. За решавање на овие задачи, списокот 1 прво дефинира нова функција наречена false_number () во редот 3 со клучниот збор fn. Бара број и го враќа.

Информациите зад стилизираната стрелка (->) откриваат кои податоци ги враќа функцијата. Кратенката u32 значи 32-битен непотпишан цел број. Рѓа, исто така, нуди типови кои се базираат на архитектурата. На пример, голем број од типот на употреба е само 64-битен број на 64-битни системи.

Функцијата lies_zahl () не бара дополнителни информации за нејзината работа. Ако ова е случај со функција, забележете ги параметрите во кружните загради, со типот зад името на променливата:

Функцијата lies_zahl () ја создава влезната променлива во линијата 4, користејќи две специјалности за 'рѓа. Вие создавате променливи во 'Рѓа со клучен збор let, при што типот на променливата обично го следи името на променливата. Во следниот пример, двајца би зачувале 2 во новата променлива:

Сепак, не смеете да ја менувате креираната променлива (таа е непроменлива. Доделување две = 3; би предизвикала грешка при составувањето. Клучниот збор mut го менува ова. Ја прави променливата променлива ), со која работи доделувањето на нова содржина. Можете да го изоставите типот на променливата ако компајлерот е во можност да ја заклучи недвосмислено.

Листата 1 го користи овој автоматски систем: Ја повикува функцијата String: new (), што враќа празна низа. Двете точки означуваат дека новата () е таканаречена поврзана функција од типот на податоци Стринг - во други програмски јазици овие беа наречени статички методи. Бидејќи е јасно дека влезот содржи низа, типот не треба да се наведува при дефинирање на променливата.

Списокот 1 го зема влезот во редот 5. Ова е погодно изведено од функција обезбедена од стандардната библиотека. Функциите што ги содржи се поделени на таканаречени модули. Обично го ставате името на модулот пред повикот за функција:

Преку употреба std: io; На самиот почеток од списокот 1, сепак, во овој случај се зачувувате спецификацијата на соодветниот модул и повикајте io: stdin () директно.

Формирајте ланци

Доставените типови на податоци имаат неколку корисни функции. На пример, секој цел број ја нуди функцијата pow (), која можете да ја користите за да ја формирате моќноста: