Anvend operatorer
Programmer tager typisk input. Inputtet kan komme fra kilder som f.eks. webanmodninger, filer eller brugerinput via en konsol eller en grafisk brugergrænseflade. Når du har hentet inputdataene ind i programmet, skal du sikre dig, at de er i et format, som dit program kan arbejde med. Du skal også vide, hvordan operatorer udfører handlinger og beregninger på dataene.
Læs input fra konsollen
Hvis du vil læse fra konsollen, kan du bruge metoder, der findes i System navneområdet. Du vil bruge noget i stil med Console.Readline(). Denne metode læser alle tegn op til et newline-tegn og placerer disse tegn i en streng. Her er et eksempel på, hvordan du bruger denne metode.
System.Console.Write "Type a value:"
let str = System.Console.ReadLine()
printfn "You typed %s" str
Denne kode fungerer muligvis fint til at gemme det, som brugeren angiver i en strengvariabel. Men hvad sker der, hvis dit program skal arbejde på brugerinputtet og vil behandle det som et tal eller som en boolesk værdi og bruge det i en handling? På det tidspunkt skal du konvertere dataene.
Konvertér mellem datatyper
Du har set, hvordan F# implicit udleder typen af en variabel ved at tildele en værdi til en variabel på følgende måde:
let myNumber = 3
Men hvad nu, hvis du har en streng, og du vil konvertere den til en int?
let myString = "3"
Der er to primære tilgange:
-
System.Int32.Parse(): Brug det, der fungerer i .NET, funktionenParse()i navneområdetSystemSystem.Int32.Parse(). - Indbygget
int: Der er en indbyggetintfunktion, som du kan bruge.
Hvis du vil bruge den første fremgangsmåde, skal du skrive koden på følgende måde:
let first = "32"
let numberVersion = System.Int32.Parse first
printfn "Number %i" numberVersion // Output: Number 32
Hvis du vil bruge den indbyggede int funktion, skal du angive den på følgende måde:
let first = "32"
let numberVersion = int first
printfn "Number %i" numberVersion
Så hvilken bruger du? Versionen med den indbyggede int funktion foretrækkes.
Operatører
Du har lært, hvordan du læser input fra en konsol og har set, hvordan dette input blev gemt som en streng. Hvis du vil bruge den i en handling, har du set, hvordan du kan konvertere værdien fra en streng til en int. Der findes konverteringsfunktioner for de fleste typer. Hvis du vil gøre noget nyttigt med din kode, skal du lære om operatorer. Ved hjælp af matematiske operatorer kan du tilføje, subtrahere, dividere osv. De grundlæggende datatyper understøtter disse operatorer. Her er nogle af de vigtigste operatorer.
| Operatør | Beskrivelse |
|---|---|
| + | Tilføjer to værdier |
| - | Trækker én værdi fra en anden |
| / | Dividerer værdien fra venstre side med værdien til højre |
| % | Kaldet modulus giver venstre over fra at dividere den venstre værdi med den højre værdi |
| <> | Kontrollerer, om to værdier ikke er ens |
| = | Kontrollerer, om to værdier er ens |
Hvis du f.eks. vil bruge modulusoperatoren, skal du angive:
let no = 10
let isDivisibleByTwo = no % 2 = 0
printfn "Divisible by two %b" isDivisibleByTwo