Rust and Go összehasonlításban - LinuxCommunity

ehhez képest

Modern módszerek

A viszonylag fiatal programozási nyelvek, a Rust and Go szembeszállnak hasonló koncepcióval és karcsú szintaxissal rendelkező kollégáikkal. Megmutatjuk, hogy a gyakorlatban hol szereznek kettőt.

A fejlesztő Graydon Hoare 2006-ban kezdett el dolgozni egy új programozási nyelven. Többek között a benne írt szoftvernek a lehető leggyorsabban kell futnia, és a programozóknak enyhíteniük kell a memória hibára hajlamos kezelését. A Mozilla Alapítvány felismerte a Rust névre keresztelt nyelv lehetőségeit, és három évvel később átvette a projekt irányítását. Az első stabil verzió azonban csak 2015 májusában történt többszörös felülvizsgálat után jelent meg [1].

acel szerkezet

Csakúgy, mint a C és a C ++ esetében, a fordító is a Rust-ban írt forráskódot natív programká alakítja. A fejlesztők jelenleg hathetente új fordítói verziót próbálnak közzétenni, amely néha új funkciókat hoz. Ezért egyszer manuálisan kell telepítenie az aktuális verziót, amelyet a következő parancs tesz:

Ezután jelentkezzen ki egyszer, majd jelentkezzen be újra. A rustup update segítségével a jövőben mindig naprakészen tartja az eszközt. A fordító kipróbálásához mentse az 1. listát az example.rs szövegfájlba, majd állítsa a fordítót a rustc example.rs-re.

Az 1. listán szereplő Rust program kiszámítja egy lakás négyzetméterét. Ehhez először megkérdezi a szobák számát, majd minden szobához a szélességet és a hosszúságot. E feladatok megoldásához az 1. lista először egy új függvényt nevez meg lies_number () néven a 3. sorban az fn kulcsszóval. Számot kér és visszaadja.

A stilizált nyíl (->) mögött található információk feltárják, hogy a függvény mely adatokat adja vissza. Az u32 rövidítés 32 bites előjel nélküli egész számot jelent. A Rust olyan típusokat is kínál, amelyek az architektúrán alapulnak. Például a felhasznált típusok száma csak 64 bites szám 64 bites rendszereken.

A lies_zahl () függvénynek nincs szüksége további információkra a munkájához. Ha ez a helyzet egy függvény esetében, vegye figyelembe a kerek zárójelben lévő paramétereket, a változó neve mögött a típussal:

A lies_zahl () függvény létrehozza a bemeneti változót a 4. sorban, két Rust specialitás felhasználásával. A Rust nevű változókat a let kulcsszóval hozza létre, ahol a változó típusa általában a változó neve után következik. A következő példában kettő 2-et tárol az új változóban:

Nem szabad azonban megváltoztatnia a létrehozott változót (megváltoztathatatlan. Kettő = 3 hozzárendelése; hibát okozna a fordítás során. A mut kulcsszó ezt megváltoztatja. Ez a változót változtathatóvá teszi ), amellyel az új tartalom hozzárendelése működik. A változó típusát elhagyhatja, ha a fordító egyedülállóan képes levezetni.

Az 1. lista ezt az automatikus függvényt használja: Meghívja a String: new () függvényt, amely üres karakterláncot ad vissza. A két kettőspont azt jelzi, hogy az new () a String adattípus úgynevezett társított függvénye - más programozási nyelvekben ezeket statikus módszereknek neveztük. Mivel egyértelmű, hogy az input tartalmaz egy karakterláncot, a változó definiálásakor nem kell megadni a típust.

Az 1. lista felveszi a bemenetet az 5. sorba. Ezt kényelmesen elvégzi a standard könyvtárból származó funkció. Az abban található funkciók úgynevezett modulokra vannak osztva. A modul nevét általában a függvényhívás elé teszi:

Használaton keresztül std: io; Az 1. lista legelején azonban ebben az esetben elmenti a megfelelő modul specifikációját, és közvetlenül meghívja az io: stdin () parancsot.

Forma láncok

A szállított adattípusok néhány hasznos funkcióval rendelkeznek. Például minden egész szám felajánlja a pow () függvényt, amellyel megadhatja a hatványt: