Stdin, Stdout og prosessargumenter
Bygg interaktive CLI-programmer
Stdin, Stdout og prosessargumenter er en gratis leksjon i Dart Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Dart Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Dart Academy inneholder totalt 4 leksjoner.
Tre standardstrømmer
Kommandolinjeprogrammer kommuniserer gjennom tre kanaler: stdin for inndata, stdout for vanlig utdata og stderr for feil.
stdout kontra print
print legger til et linjeskift og skriver til stdout. Hvis du vil ha mer kontroll, kan du skrive direkte med stdout.write, uten at det legges til et ekstra linjeskift.
stdout.write('Loading');Feil sendes til stderr
Send advarsler til stderr, ikke stdout. Da forblir de faktiske resultatene rene når brukere sender programmets utdata videre.
stderr.writeln('Could not find file');Les en inndatalinje
Still brukeren et spørsmål, og hent deretter svaret med stdin.readLineSync. Programmet venter til brukeren trykker på Enter.
final name = stdin.readLineSync();Inndata kan være null
readLineSync returnerer en nullable String. Hvis strømmen lukkes uten inndata, får du null, så du må håndtere dette tilfellet.
final answer = stdin.readLineSync() ?? '';En liten spørreløkke
Kombiner en skriveoperasjon og en leseoperasjon for å lage en ledetekst. Skriv ut et spørsmål, les svaret og utfør deretter en handling – alt på noen få linjer.
stdout.write('Name? '); final n = stdin.readLineSync();Kommandolinjeargumenter
Din main kan ta imot en List med String-argumenter i args. Alt brukeren skriver etter programnavnet, havner der i samme rekkefølge.
void main(List<String> args) { print(args); }Les ett argument
Du kan hente args etter indeks, akkurat som fra en hvilken som helst liste. Sjekk alltid args.isEmpty først, slik at et manglende argument ikke får programmet til å krasje.
if (args.isNotEmpty) print(args[0]);Analyser flagg med args
For ordentlige CLI-er gjør args-pakken flagg og alternativer om til et ryddig analysert resultat, i stedet for at du må håndtere indekser manuelt.
import 'package:args/args.dart';Angi en avslutningskode
Fortell skallet hvordan det gikk med exit. Null betyr at alt gikk bra, mens alle andre verdier signaliserer en feil til skriptene som kaller programmet.
exit(1);Slå av ekkomodus
For passord kan du skjule tegnene brukeren skriver, ved å sette stdin.echoMode til false før du leser linjen.
stdin.echoMode = false;Rask kontroll
Hvor bør et CLI-verktøy sende feilmeldinger for at videresendte utdata skal forbli rene?
Oppsummering
Du kan nå skrive til stdout og stderr, lese inndata med stdin, ta imot kommandolinjeargumenter og angi en avslutningskode. CLI-et ditt er interaktivt.
Lær deg Dart med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Stdin, Stdout og prosessargumenter» gratis?
Ja – hele teksten i «Stdin, Stdout og prosessargumenter» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Dart Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Dart Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Stdin, Stdout og prosessargumenter»?
Bygg interaktive CLI-programmer Du øver på Dart Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Dart Academy?
Ingen tidligere erfaring er nødvendig. Dart Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Stdin, Stdout og prosessargumenter»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Dart Academy-leksjonen?
Ja. Alle Dart Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Lese og skrive filer
- Kataloger, stier og FileSystemEntity
- Strømming av store filer
- Stdin, Stdout og prosessargumenter