Aan de slag met roest

Sep 16, 2025
Procedures

De C-programmeertaal heeft de tand des tijds echt gepasseerd. Er zijn maar weinig omgevingen waar het niet gedijen. Dit is vooral te danken aan de prestaties van hoge uitvoering, die helaas een prijs is: C ondersteunt niet veel van de verwachte functies in een moderne programmeertaal.

  • Mozilla onthult radicale nieuwe merkidentiteit

Mozilla Research's Roest is een poging om een ​​betere muizenval te creëren. Het taalontwerp blijft gericht op hoge prestaties en dicht bij hardware zijn.

De syntaxis en compiler profiteren echter ook van de verschillende voordelen die worden aangeboden door het moderne programmeertaalonderzoek. Gezien de missie van Mozilla is het creëren van een 'open web', zou het niet verwonderlijk moeten zijn dat het bedrijf onvermoeibaar werkt om zijn nieuwste geesteskind naar het web te brengen.

Terwijl roest kan, in theorie, op de client lopen via systemen zoals EMSCRIPTEN, ligt het echte vermogen in het creëren van efficiënte backend-services.

Maak je een site van nul aan? Spijker het ontwerp en de prestaties met een top website bouwer en uitstekend web hosting ​Heb je bestanden om te delen of op te slaan? Betrokken raken bij deze cloud opslag opties.

Hoe te beginnen met het gebruik van roest

 The Rust installer provides a semi-graphic installation environment

Het Rust-installatieprogramma biedt een semi-grafische installatieomgeving

Terwijl pakketmanagers zoals 'Apt-Get' de levensduur van ontwikkelaars gemakkelijker zijn gemaakt, zijn pakketlijstonderhouders in en groot, bekend als geen vrienden van buitensporige snelheid. Daarom zijn velen, zo niet de meeste, distributies 'pakketcaches zwaar verouderd.

Het roestteam heeft dit probleem opgelost door een speciaal installatiescript te bieden, dat het systeem instelt dat het efficiënt wordt uitgevoerd. Implementatie, dan is een proces van twee stappen: zorg eerst voor dat de Curl Downloader / Parser beschikbaar is:

 Tamhan @ Tamhan-ThinkPad: ~ $ sudo apt-get install curl
[SUDO] Wachtwoord voor TAMHAN:
Pakketlijsten lezen ... Gereed ... 

Download vervolgens in de tweede stap het installatieprogramma en geef deze door om de buisexploitant te 'SH' te gebruiken. 'Sh' is een stendestoel voor de standaard shell-interpreter van je werkstation, die vervolgens doorgaan met het uitvoeren van de code bij de hand:

 Tamhan @ Tamhan-ThinkPad: ~ $ curl https://sh.rustup.rs -SSF | schel
Info: Installateur downloaden 

Tijdens de installatie toont het roestinstallatie een verscheidenheid aan aanwijzingen die qua uiterlijk vergelijkbaar zijn met die in de afbeelding aan de rechterkant. Volg ze gewoon om een ​​standaardinstallatie te bereiken.

In sommige gevallen zal de RUS-implementatie mislukken met een fout die vergelijkbaar is met "Fout: kan RCFile-bestand niet schrijven: '/home/tamhan/.bash_profile'. Als dit tijdens de installatie gebeurt, gebruikt u 'sudo -s' om een ​​wortelschaal te krijgen en vervolgens af te spoelen en te herhalen om door te gaan.

Voer een monster uit

Met dat uit de weg is het tijd om ons eerste kleine programma uit te voeren. Roestbestanden hebben standaard de bestandsextensie '.RS'. Maak een bestand met de naam 'firsttest.rs' en geef het dan met het volgende stuk code:

 FN Main () {
    Println! ("Hallo World!");
} 

C en C ++ -programmeurs vragen zich vaak af waarom aanroepingen van de methode 'Println' het gebruik van een uitroepteken vereisen. Het antwoord is eenvoudig: Rust implementeert 'Println' als macro, die op een andere manier wordt aangeroepen.

Gegeven dat roest een gecompileerde taal is, moet ons voorbeeld worden verwerkt voordat het kan worden uitgevoerd vanaf de opdrachtregel:

 Tamhan @ Tamhan-ThinkPad: ~ / Rustspace $ RUSCK FESTST.RS
Tamhan @ Tamhan-ThinkPad: ~ / Rustspace $ ./firstest
Hallo World! 

Geavanceerd verval

Het beschrijven van een complete programmeertaal, zoals roest, in de beperkte ruimte die we hier beschikbaar hebben, is onmogelijk. Laten we beginnen met het formeel wijzen naar Mozilla Research's uitgebreide documentatie ​Eén functie die zeker is om te imponeren C-programmeurs omvat het gebruik van de opdracht 'Match': in aanvulling op directe vergelijkingen maakt het ook het gebruik van bereikoperators in staat om het ontwerp van geavanceerde programma's enorm te vereenvoudigen

fn main () {
    laat nummer = 5;
    Println! ("Werken aan {}", nummer);
    match nummer {
        1 = & GT; Println! ("One!"),
        2 | 3 | 5 | 7 = & GT; Println! ("Prime"),
        _ = & gt; Println! ("een nummer"),
    ​
} 

Afval

Klassieke Garbage Collection heeft zijn zwakheden: de meeste implementaties brengen het programma van tijd tot tijd tot een krijsen. Om rond te komen die roest gebruikt, gebruikt een set van zogenaamde 'zero-cost abestracties' om een ​​vergelijkbaar gedrag op een minder irritante manier te emuleren.

In principe wordt elke resource gemaakt met een eigenaar op een manier die vergelijkbaar is met QT's Parent-Child Subsysteem. Een functie 'Lenen' wordt echter de programmeur echter in staat om het eigendom tussen middelen tijdelijk over te dragen, waardoor ze door het systeem kunnen worden gevoerd.

Helaas zou een volledige discussie over de mogelijkheden van de geheugenbeheerder van Rust de grenzen van dit artikel breken - laat het voldoende zijn om te verklaren dat Roest een zeer onorthodoxe, maar werkbare vorm van geheugenbeheer biedt.

Maak een nieuw project

 Similarities to NPM are purely coincidental...

Overeenkomsten met NPM zijn puur toevallig ...

Hoewel C en C ++ -code in bibliotheken kunnen worden afgebroken, is het een irritante en enigszins ongemakkelijke taak. Bovendien zorg ervoor dat alle vereiste bibliotheken zijn waar ze nodig zijn, iets zelfs doorgewinterde ontwikkelaars willen vermijden.

De JavaScript-community heeft dit probleem lang opgelost via producten zoals NPM. Projecten worden beschreven via een projectstructuurbestand, dat - onder andere - verwijzingen naar bibliotheken en andere elementen bevat die nodig zijn tijdens de daadwerkelijke compilatie-run.

In het geval van roest, heeft een pakketbeheerder genaamd Cargo een vergelijkbare taak. Het creëren van een nieuw project kan worden bereikt door het gebruik van de opdracht 'Cargo New' op een manier vergelijkbaar met het volgende:

 Tamhan @ Tamhan-ThinkPad: ~ / Rustspace $ Cargo New FutureSample1 --bin
     Gemaakt binary (applicatie) `futureSample1`
Tamhan @ Tamhan-ThinkPad: ~ / Rustspace $

Wanneer het creatieproces is voltooid, wordt een mapstructuur die vergelijkbaar is met die op de afbeelding onder aan deze pagina wordt gegenereerd.

.toml-bestanden fungeren als 'controllers' - In het geval van ons nieuw gegenereerde project bevat het bestand de volgende structuur:

 [Pakket]
Naam = "FutureSample1"
versie = "0.1.0"
Auteurs = ["Tamhan"]
[afhankelijkheden] 

Overeenkomsten met de .ini-bestanden van Lore zijn niet puur toevallig: in een mode die niet ongelijk is aan NPM, wordt ook het oude configuratiebestandsformaat gebruikt om de configuratiebestanden te beschrijven die worden gebruikt voor roestprojecten. Het blok '[afhankelijkheden]' is van speciaal belang voor ons - het bevat een lijst met alle externe bibliotheken, die aanwezig moeten zijn voor de compilatie om te slagen.

Voeg een pakket toe

Met de hand aan het maken van een webserver is een vervelende baan die het beste is aan Masochisten. We zullen in plaats daarvan kiezen voor een raamwerk. Helaas is het vinden van de juiste niet gemakkelijk - als een bezoek Awwy's lijst van webontwikkelingskaders onthult, er zijn veel kandidaten.

We zullen kiezen Raket , al was het alleen maar omdat het vrij populair lijkt en een update heeft gezien die in mei 2018 is vrijgegeven. Helaas hebben de ontwikkelaars van Rocket de neiging om een ​​smaak te nemen aan nieuw geïntroduceerde taalfuncties, daarom is het vereiste een frequente opdrachten vereist :

 Tamhan @ Tamhan-ThinkPad: ~ / Rustspace / FutureSample1 $ Rustup Update & AMP; & AMP; Cargo-update 

De volgende stap is grotendeels een kwestie van smaak. De meeste bibliotheken worden geleverd met vooraf ingerichte startprojecten, welke ontwikkelaars eenvoudigweg van GitHub kunnen worden. Als u dit doet voor uw 'Prime'-bibliotheek is niet noodzakelijk een slecht idee - hoewel eenmaal meer dan één bibliotheek bij betrokken is, heeft een handmatige aanpak de neiging om vruchtbaarder te zijn.

Open vervolgens het .toml-bestand en wijzig vervolgens het gedeelte 'Afhankelijkheden' volgens het volgende om een ​​recente versie van het raketraamwerk op te nemen:

 [afhankelijkheden]
raket = "0.3.6"
ROCKET_CODEGEN = "0.3.6" 

Raket is uniek omdat het de opname van in totaal twee pakketten vereist: in aanvulling op het hoofdkader is ook een afzonderlijk code generator-bestand vereist. Hoe dan ook, onze versie bevat een specifieke versie van de twee bibliotheken - Cargo kan ook jokertekens accepteren, waardoor het programma 'zijn gif' zonder hulp van ons kan kiezen.

Met dat uit de weg blijft één probleem: voer het 'Cargo Run' in in de map met het .toml-bestand om een geassisteerde compilatie uit te voeren, die - onder andere - de relevante codebibliotheken van de repository zal downloaden en dehele enchilada voor jou.

Volgende pagina: Steigers en diepgaande analyse

  • 1
  • 2

Huidige pagina: Pagina 1


Procedures - Meest populaire artikelen

Adobe XD: Hoe de Auto-Animate-functie te gebruiken

Procedures Sep 16, 2025

(Afbeelding Credit: Adobe) Ondanks de late toegang tot het prototypingspel is Adobe XD een van de beste en snelste wi..


Hoe Pin-up Art

Procedures Sep 16, 2025

De oorsprong van pin-up kunst kan worden getraceerd tot de late 19e eeuw, maar het werd meer wijdverspreid in de jaren 1940 en 1950, vaak op posters en agenda's. Het definiëren van kenmerken..


Gebruik negatieve ruimte om betere handen te tekenen

Procedures Sep 16, 2025

Zelfs een schijnbaar complex proces zoals het tekenen van een hand kan worden vereenvoudigd, met de juiste tekeningtechnieken en ..


6 manieren om uw modellering te versnellen

Procedures Sep 16, 2025

Een efficiëntere workflow is het voor de hand liggende voordeel van het verbeteren van de beeldhouwstechniek van uw snelheid, ma..


Hoe te werken met HTML-video

Procedures Sep 16, 2025

Verplaats over YouTube ... met The & LT; Video & GT; element en een beetje JavaScript , u kunt beginnen me..


Maak gemengde inkten met InDesign

Procedures Sep 16, 2025

Pagina 1 van 2: Maak een gemengde inktstempel Maak een gemengde inktstemp..


Maak een typografische poster met behulp van Adobe InDesign

Procedures Sep 16, 2025

Adobe InDesign is een geweldig programma om te gebruiken bij het ontwerpen van alles dat Type zwaar gebruikt. Gedurende deze InDe..


10 TOP HOUDINI TUTORIALS

Procedures Sep 16, 2025

Houdini is een krachtig beest, met tools voor het bouwen van VFX die wordt gebruikt in veel Hollywood-films. Maar de initiële leercurve is steil, dus we hebben deze lijst met tutorials gecom..


Categorieën