Mojo Academy · Lektion

Betinget kompilering

Forgren kodeveje ved kompilering.

Lektion 3 af 413 trin

Betinget kompilering er en gratis Mojo Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Mojo Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Mojo Academy-kurset indeholder 4 lektioner i alt.

Vælg kode ved kompilering

Betinget kompilering vælger, hvilken kodegren der skal bygges, ud fra værdier, der kendes ved kompilering, så den ubrugte gren aldrig når frem til det færdige program. ⚙️

Sætningen @parameter if

Føj @parameter til en if-sætning, hvis betingelse kendes ved kompilering, så beholder Mojo kun den gren, der passer.

@parameter
if width == 1:
    scalar_path()
else:
    vector_path()

Betingelsen skal være statisk

Testen skal bruge parametre eller aliaser, altså værdier som kompileren allerede kender, ikke data, der først opstår, mens programmet kører.

alias DEBUG = False

@parameter
if DEBUG:
    print("tracing")

Udfasede grene forsvinder

Den gren, der ikke opfylder betingelsen, bliver ganske enkelt ikke kompileret, så den øger hverken størrelsen eller omkostningerne ved kørsel.

Specialisér efter type

Brug det til at skifte logik ud fra en typeparameter, så du f.eks. vælger den bedste implementering til flydende tal frem for heltal.

@parameter
if T.is_floating_point():
    use_fma()
else:
    use_int_mul()

Forgren efter hardwareegenskaber

Kombinér betinget kompilering med platformstjek for at generere den rigtige kerne til den CPU eller accelerator, du målretter.

Funktionsflag uden omkostning

Styr valgfrie funktioner med et aliasbaseret flag; når det er False, kompileres hele funktionen væk, så der kun er en slank binærfil tilbage.

Forskellig fra en if ved kørsel

En normal if beholder altid begge grene i den binære fil og tester ved kørsel; @parameter if træffer beslutningen én gang ved bygning og fjerner resten.

Kombinér med anden metaprogrammering

Betinget kompilering fungerer godt sammen med parameteriserede funktioner og udfoldede løkker, så hver specialisering kan følge sin egen optimale sti.

Én kilde, mange målplatforme

Ud fra én definition genererer du tilpassede versioner til hver platform eller type uden at betale en pris for forgrening ved kørsel. 🚀

Hold begge stier gyldige

Hver gren skal stadig kunne kompileres alene, når den vælges, så skriv alle stier, så de er korrekte for de parameterværdier, der vælger dem.

Hurtigt tjek

Sammenlign @parameter if med en normal if.

Opsummering

@parameter if vælger kodestier ved kompilering: Udfasede grene forsvinder, du specialiserer efter type eller platform, og den binære fil forbliver slank. 🎯

Gratis at komme i gang

Lær Mojo med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Betinget kompilering” gratis?

Ja — alle 3 lektioner i læringssporet Mojo Academy, inklusive “Betinget kompilering”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Mojo Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Betinget kompilering”?

Forgren kodeveje ved kompilering. Du øver dig i Mojo Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Mojo Academy?

Der kræves ingen tidligere erfaring. Mojo Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Betinget kompilering”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Mojo Academy-lektion?

Ja. Alle Mojo Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Parametriske algoritmer
  2. Udfold løkker ved kompilering
  3. Betinget kompilering
  4. Begrænsninger og statiske kontroller
← Tilbage til Mojo Academy