Programmering
  1. Teori
  2. Data
  3. Ejerskab og referencer
  • Eksamen
  • Projektarbejde
  • Synopsis
  • Cheatsheets
    • Python cheatsheet
    • Rust cheatsheet
    • Kodningsplatforme
  • Opsætning
    • Git
    • Python
    • Rust
    • VScode
  • Teori
    • Arbejdsproces
      • Abstraktion
      • Fejlfinding
      • Generalisering
      • Git
      • Kommentarer
      • Moduler
      • Pakker
    • Data
      • Datastrukturer
      • Datatyper
      • Ejerskab og referencer
      • Enum
      • Hukommelse og pointers
      • Indkapsling
      • Polymorfi
      • Struct
    • Diagrammer
      • Brugerhistorier
      • Klassediagrammer
      • Rutediagrammer
      • Tegneprogrammer
    • Logik
      • Anonyme Funktioner
      • Fejlhåndtering
      • Grådig algoritme
      • Metaprogrammering
      • Samtidig programmering
  • Studieområdet
    • Forslag til emner
    • Empiri
    • Metoder i Programmering

På denne side

  • Ejerskab [1]
  • Referencer [2]
    • Videoer
  1. Teori
  2. Data
  3. Ejerskab og referencer

Ejerskab og referencer

Teori

Udgivet

30. marts 2026

Programmeringssprog har forskellige tilgange til at styre brugen af computerens hukommelse. Dette har stor betydning for effektiviteten af programmerne og hvordan sprogene bruges.

I Rust bruges konceptet ejerskab for at holde styr på hukommelsen uden brug af såkaldt “garbage collection”. Dette gør Rust hurtigere og mere sikkert end mange andre sprog.

Ejerskab [1]

  • Alle værdier har en ejer
  • Der er kun 1 ejer ad gangen (men kan skifte)
  • Når ejerens virkefelt ophører så fjernes værdien

Ved større datamængder kan det have stor betydning for hastighed/plads om man kopiere/kloner eller flytter data. I rust kaldes det hhv. Copy, Clone og move hvoraf de to første er såkaldte traits. Standardimplementeringer af disse kan laves automatisk vha. #[derive(<trait>)].

Referencer [2]

Alternativ til at kopiere eller flytte data er at bruge en reference til data. Tænk på det som udlån af data. Man kan enten have en enkelt mutabel reference eller et vilårligt antal ikke-mutable referencer.

Data der ikke har implementeret Copy bliver i stedet flyttet når de bruges som funktionsargument. For at undgå dette kan der bruges reference i funktionsparameteren. Dette kaldes også “pass by reference”.

Videoer

  • References
  • Pass by reference
Tilbage til toppen

Referencer

[1]
S. Klabnik og C. Nichols, “4.1. What is Ownership?”, i The Rust Programming Language, No Starch Press. Tilgængelig hos: https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html
[2]
S. Klabnik og C. Nichols, “4.2. References and Borrowing”, i The Rust Programming Language, No Starch Press. Tilgængelig hos: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html

ZBC Slagelse HTX

Senest redigeret d. 30. marts 2026

JACS