Øvelse – funktioner

Fuldført

I denne øvelse gør du din kode genbrugelig. Det er kode, som en anden programmør på dit team skrev, men dit job er at gøre det til funktioner.

Opret funktioner

Start med at oprette et nyt F#-projekt, og tag derefter et stykke kode, og gør det til en funktion med parametre.

  1. Opret et nyt F#-projekt ved at køre dotnet new.

    dotnet new console --language F# -o Functions
    cd Functions
    

    Nu, hvor du har et nyt projekt, kan vi se på koden.

    Her er koden fra din kollega.

    let no = card % 13
    if no = 1 then "Ace"
    elif no = 0 then "King"
    elif no = 12 then "Queen"
    elif no = 11 then "Jack"
    else string no
    
  2. Erstat standardkoden i filen Program.fs med følgende kode:

    let cardFace card = 
       let no = card % 13
       if no = 1 then "Ace"
       elif no = 0 then "King"
       elif no = 12 then "Queen"
       elif no = 11 then "Jack"
       else string no
    

    Den første linje i denne kode let cardFace card gør den til en funktion. Det er nu en funktion kaldet cardface(), der tager parameteren card.

  3. Tilføj følgende kode under funktionen cardface().

    printfn "%s" (cardFace 11)
    
  4. Kør projektet ved at kalde dotnet run i konsollen.

    dotnet run
    

    Du kan nu se følgende output:

    Jack
    

Tillykke! Du har taget et stykke kode, som du ville gøre genbrugeligt og gjort det til en funktion.

Tilføj typer

Du har gjort din kollegas kode til en funktion. Hvis du vil gøre denne kode mere læsevenlig, skal du beslutte at føje typedefinitioner til den.

  1. Rediger din eksisterende cardface() funktion, så den ser sådan ud:

    let cardFace (card:int) = 
        let no = card % 13
        if no = 1 then "Ace"
        elif no = 0 then "King"
        elif no = 12 then "Queen"
        elif no = 11 then "Jack"
        else string no
    
  2. Kør nu projektet dotnet run.

    dotnet run
    

    Du kan nu se følgende output:

    Jack
    

    Koden fungerer stadig, og du har gjort det tydeligere ved at føje en type til inputparameteren.

  3. Rediger funktionen cardface(), så den ser sådan ud:

    let cardFace (card:int) :string = 
        let no = card % 13
        if no = 14 || no = 1 then "Ace"
        elif no = 13 then "King"
        elif no = 12 then "Queen"
        elif no = 11 then "Jack"
        else string no
    

    På dette tidspunkt har du føjet en returtype til funktionen :string, betyder, at funktionen returnerer en streng.

  4. Kør projektet dotnet run.

    dotnet run
    

    Du bør igen se følgende output:

    Jack
    

Tillykke! Der er nu føjet typer til din kode.