Alıştırma - İşlevler
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.
komutunu çalıştırarak
dotnet new
yeni 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
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 parametresinicard
alan adlıcardface()
bir işlevdir.İşlevin altına
cardface()
aşağıdaki kodu ekleyin.printfn "%s" (cardFace 11)
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.
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
Ş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.
İş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
:string
bir dize döndürdüğü anlamına gelir.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.