Alıştırma - İşlevler

Tamamlandı

Bu alıştırmada kodunuzu yeniden kullanılabilir hale getireceksiniz. Bu, ekibinizdeki başka bir programcının yazdığı koddur, ancak sizin göreviniz bunu işlevlere dönüştürmektir.

İşlev oluşturma

Yeni bir F# projesinin iskelesini oluşturarak başlayın ve ardından bir kod parçası alın ve bunu parametrelerle bir işleve dönüştürün.

  1. komutunu çalıştırarak dotnet newyeni bir F# projesi oluşturun.

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

    Artık yeni bir projeniz olduğuna göre koda göz atalım.

    İşte iş arkadaşınızın kodu.

    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. Program.fs dosyasındaki varsayılan kodu aşağıdaki kodla değiştirin:

    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
    

    Bu kodun let cardFace card ilk satırı bunu bir işlev haline getirir. Artık parametresini cardalan adlı cardface() bir işlevdir.

  3. İşlevin altına cardface() aşağıdaki kodu ekleyin.

    printfn "%s" (cardFace 11)
    
  4. Konsolda arayarak dotnet run projeyi çalıştırın.

    dotnet run
    

    Şimdi aşağıdaki çıkışı görürsünüz:

    Jack
    

Tebrikler! Yeniden kullanılabilir hale getirmek istediğiniz bir kod parçasını alıp bir işleve dönüştürdüniz.

Tür ekleme

İş arkadaşınızın kodunu bir işleve dönüştürdünüz. Bu kodu daha okunabilir hale getirmek için, koda tür tanımları eklemeye karar verirsiniz.

  1. Mevcut cardface() işlevinizi şöyle görünecek şekilde değiştirin:

    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. Şimdi projesini dotnet runçalıştırın.

    dotnet run
    

    Şimdi aşağıdaki çıkışı görürsünüz:

    Jack
    

    Kod çalışmaya devam eder ve giriş parametresine bir tür ekleyerek kodu daha net hale getirdiniz.

  3. İşlevinizi cardface() şöyle görünecek şekilde değiştirin:

    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
    

    Bu noktada işlevine bir dönüş türü eklediniz, işlevin :stringbir dize döndürdüğü anlamına gelir.

  4. projesini dotnet runçalıştırın.

    dotnet run
    

    Bir kez daha aşağıdaki çıkışı görmeniz gerekir:

    Jack
    

Tebrikler! Kodunuz artık bu koda eklenmiş türler içerir.