Programmering
  1. Teori
  2. Arbejdsproces
  3. Moduler
  • 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

  • Offentligt og privat
  • Navnerum og ::
    • Python navnerum
    • use
  • Video
  1. Teori
  2. Arbejdsproces
  3. Moduler

Moduler

Teori

Udgivet

9. februar 2026

For at organisere kode kan man opdele i flere filer fx vha. de tre lag fra Trelags-arkitekturen. I både Python og Rust kaldes det moduler. I Rust skal filerne dog overholde en bestemt struktur.

NoteRust modul eksempel

Eksemplet [1] gengivet nedenfor indeholder en projektmappe med navnet backyard og indeholder et modul ved navn garden. garden indeholder et undermodul vegetables.

backyard
├── Cargo.lock
├── Cargo.toml
└── src
    ├── garden
    │   └── vegetables.rs
    ├── garden.rs
    └── main.rs

Moduler skal angives vha. mod et trin højere i hierarkiet. I eksemplet ovenfor skal der angives mod garden; i main.rs og mod vegetables i garden.rs.

Offentligt og privat

Som udgangspunkt er alt i et modul privat, hvilket betyder at det kun tilgås af andre funktioner i samme modul. Hvis det skal tilgås udenfor modulet skal det angives som offentligt, hvilket gøres vha. nøgleordet pub (for public).

Navnerum og ::

Moduler og strukturer (Struct) inddeler koden i navnerum for at undgå navnekonflikter. For at tilgå et navnrum bruges ::. String::from og Vec::new er eksempler fra standardbiblioteket. Her er metoderne from og new defineret under navnerummene for strukturerne String og Vec.

Python navnerum

I Python bruges punktum til at adskille navnerum, fx math.sqrt. Navne kan importeres i samme navnerum vha. from, fx from math import sqrt.

use

use importerer navne ind i det navnerum hvor det angives. Det bruges bl.a. for at undgå lange rækker af navnerum. VScode kan gøre det automatisk, hvis man fx skriver en funktion eller struktur, der er defineret i projektet.

Hvis man angiver pub use bliver de angivne navne også offentligt tilgængelige som en del af navnerummet.

Video

  • Multiple source files (Modules)
Tilbage til toppen

Referencer

[1]
S. Klabnik og C. Nichols, “7. Managing Growing Projects with Packages, Crates, and Modules”, i The Rust Programming Language, No Starch Press. Tilgængelig hos: https://doc.rust-lang.org/book/ch07-00-managing-growing-projects-with-packages-crates-and-modules.html

ZBC Slagelse HTX

Senest redigeret d. 9. februar 2026

JACS