簡體   English   中英

了解 F# 中“失敗”的類型?

[英]Understanding the type of "failwith" in F#?

如何理解 F# 中的 failwith 類型?

> failwith;;
val it : (string -> 'a)

為什么它與泛型類型 'a 而不是異常相關聯?

因為'a是返回值的類型,一個函數不能返回多個不同類型的值。 如果failwith返回一個Exception ,調用failwith的函數中的任何其他路徑也需要返回一個Exception 請記住,當函數在特定路徑上調用failwith (拋出異常)時,該路徑實際上不會返回值,而是會中斷執行流程。

在下面的情況下, failwith的通用返回類型被強制為int ,因為代碼中的不同路徑返回int

在此處輸入圖片說明

考慮一下這種情況,我們實際上返回了一個Exception 請注意,它會生成編譯錯誤。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM