練習 - 函式
在此練習中,您使程式碼可重複使用。 該程式碼是小組中另一個程式設計師所撰寫,但您的工作是將其轉換成函式。
建立函數
開始對新的 F# 專案進行 Scaffolding,然後將一段程式碼轉換成具有參數的函式。
執行
dotnet new
以建立新的 F# 專案。dotnet new console --language F# -o Functions cd Functions
現在您有了新專案,讓我們來看看程式碼。
以下是您同事的程式碼。
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 檔案中的預設程式碼:
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
此程式碼
let cardFace card
的第一段會使其成為函式。 其現在是名為cardface()
的函式,並接受card
參數。在
cardface()
函式下方新增以下程式碼。printfn "%s" (cardFace 11)
在主控台中呼叫
dotnet run
來執行專案。dotnet run
您現在會看到下列輸出:
Jack
恭喜! 您已取得您想讓其可重複使用的一段程式碼,並將其轉換成函式。
新增型別
您已將同事的程式碼轉換成函式。 為了讓此程式碼更容易閱讀,您決定在其中新增型別定義。
修改您的現有函式
cardface()
,使看起來像下面這樣: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
現在執行
dotnet run
專案。dotnet run
您現在會看到下列輸出:
Jack
程式碼仍然有效,並且透過向輸入參數新增類型使其更加清晰。
將您的
cardface()
函式更改為像下面這樣: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
至此,您已將傳回型別新增至函式
:string
,這表示函式會傳回字串。執行
dotnet run
專案。dotnet run
您應該會再次看見下列輸出:
Jack
恭喜! 您的程式碼現在已新增型別。