Rust and Go în comparație - LinuxCommunity

Metode moderne
Limbajele de programare relativ tinere Rust and Go se opun colegilor lor stabiliți cu concepte similare și o sintaxă slabă. Arătăm unde punctează cei doi în practică.
Dezvoltatorul Graydon Hoare a început să lucreze la un nou limbaj de programare în 2006. Printre altele, software-ul scris în acesta ar trebui să ruleze cât mai repede posibil, iar programatorii ar trebui să amelioreze administrarea predispusă la erori a memoriei. Fundația Mozilla a recunoscut potențialul limbajului, numit Rust, și a preluat conducerea proiectului trei ani mai târziu. Cu toate acestea, o primă versiune stabilă a fost lansată doar după mai multe revizuiri în mai 2015 [1].
construcție de oțel
Ca și în cazul C și C ++, un compilator traduce codul sursă scris în Rust într-un program nativ. Dezvoltatorii încearcă în prezent să publice o nouă versiune a compilatorului la fiecare șase săptămâni, care uneori aduce funcții noi. Prin urmare, ar trebui să instalați manual versiunea curentă o singură dată, ceea ce face următoarea comandă:
Apoi deconectați-vă o dată și apoi conectați-vă din nou. Cu actualizarea rustup, veți menține întotdeauna instrumentul actualizat în viitor. Pentru a încerca compilatorul, salvați lista 1 în fișierul text example.rs și apoi setați compilatorul cu rustc example.rs.
Programul Rust din Lista 1 calculează suprafața pătrată a unui apartament. Pentru a face acest lucru, se cere mai întâi numărul de camere și apoi pentru fiecare cameră lățimea și lungimea. Pentru a rezolva aceste sarcini, Listarea 1 definește mai întâi o nouă funcție numită lies_number () în linia 3 cu cuvântul cheie fn. Solicită un număr și îl returnează.
Informațiile din spatele săgeții stilizate (->) dezvăluie ce date returnează o funcție. Abrevierea u32 înseamnă un întreg nesemnat pe 32 de biți. Rust oferă, de asemenea, tipuri care se bazează pe arhitectură. De exemplu, un număr de tipul usize este doar un număr pe 64 de biți pe sistemele pe 64 de biți.
Funcția lies_zahl () nu are nevoie de informații suplimentare pentru activitatea sa. Dacă acesta este cazul unei funcții, rețineți parametrii din paranteze rotunde, cu tipul din spatele numelui variabilei:
Funcția lies_zahl () creează intrarea variabilă în linia 4, folosind două specialități Rust. Creați variabile în Rust cu cuvântul cheie let, prin care tipul variabilei urmează de obicei numele variabilei. În exemplul următor, doi ar stoca un 2 în noua variabilă:
Cu toate acestea, nu aveți voie să modificați variabila creată (este imuabilă. Atribuirea a două = 3; ar provoca o eroare în timpul compilării. Cuvântul cheie mut modifică acest lucru. Face variabila mutabilă ), cu care funcționează atribuirea de conținut nou. Puteți omite tipul variabilei dacă compilatorul este capabil să o obțină în mod unic.
Listarea 1 folosește această funcție automată: apelează funcția String: new (), care returnează un șir gol. Cele două puncte indică faptul că new () este așa-numita funcție asociată a tipului de date String - în alte limbaje de programare acestea au fost numite metode statice. Deoarece este clar că intrarea conține un șir, tipul nu trebuie specificat la definirea variabilei.
Lista 1 preia intrarea în linia 5. Acest lucru este realizat în mod convenabil de o funcție furnizată din biblioteca standard. Funcțiile pe care le conține sunt împărțite în așa-numitele module. De obicei, puneți modulul în fața apelului funcțional:
Prin utilizarea std: io; Totuși, la începutul listării 1, în acest caz vă salvați specificațiile modulului corespunzător și apelați direct la io: stdin ().
Formați lanțuri
Tipurile de date furnizate au câteva funcții utile. De exemplu, fiecare număr întreg oferă funcția pow (), pe care o puteți utiliza pentru a forma puterea: