Rust (programmeringssprog)

Fra Wikipedia, den frie encyklopædi
Spring til navigation Spring til søgning
Disambig bordered fade.svg For alternative betydninger, se Rust (flertydig). (Se også artikler, som begynder med Rust)

Rust er et multi-paradigme programmeringssprog designet til ydeevne og sikkerhed, især sikker samtidighed. Rust svarer syntaktisk til C++, men kan garantere hukommelsessikkerhed ved at bruge en låne-kontrol til at validere referencer.

Rust er inspireret af sprog som Haskell. Eksempelvis kan man angive, hvad en funktion returnerer blot ved at angive et udtryk.

Sikkerhedsforanstaltninger[redigér | rediger kildetekst]

I Rust beregner compileren, hvornår en variabel ikke længere er tilgængelig, og når det sker, indsætter compileren kode til frigivelse af hukommelsen. Varabler kan som ugangspunkt ikke ændres, men kan defineres på ny med en anden værdi. Hvis en varabel rent faktisk skal ændres ofte f.eks. fordi en er en tæller i en løkke, kan den defineres som 'mutable', hvilket gør, at den kan ændres. En funktion, der får en variabel som parameter overtager som udgangspunkt ejerskabet. For at undgå det, kan man definere parameteren som en reference. Med en reference 'låner' funktionen variablen, og der skiftes ikke ejer. Som ugangspunkt giver en refrence kun læseadgang, men man kan definere referencer til opdatering. Compileren sikrer, at der kun findes en opdateringsreference ad gangen, Den sikrer også, at der ikke er andre referencer i brug under opdateringen. Det sikrer mod fejl, hvor data ændres eller slettes under læsning.

Programstruktur[redigér | rediger kildetekst]

Rustprogrammer er typisk opdelt i mange funktioner, der kalder hinanden.

Programmer kan opdeles i moduler. Funktioner og andre definitioner i moduler er som udgangspunkt private, men de kan gøres tilgængelige med nøgleordet 'pub'. I store programmer kan moduler defineres inden i hinanden, og moduler kan flyttes ud i egne filer.

Eksempel[redigér | rediger kildetekst]

Et simpelt program uden håndtering af input:

// main() er tilgængelig uden særlig markering
fn main() {
    let c = 25.0;
    let f = c_til_f(c);
    println!("Temperatur: {} F ", f);
}

fn c_til_f(c:f32) -> f32 {
    c * 9.0 / 5.0 + 32.0
}

Links[redigér | rediger kildetekst]

https://rust-lang.org - Hjemmeside for Rust

ArtikelstumpSpire
Denne artikel er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.