国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

F#選項

2018-12-15 11:32 更新

當計算中使用F#中的選項類型時,可能存在或可能不存在變量或函數(shù)的值。 選項類型用于在計算中表示可選值。 它們可以有兩個可能的值 - 一個(x)或無。
例如,執(zhí)行除法的函數(shù)將在正常情況下返回值,但在零分母的情況下將拋出異常。 在此處使用選項將有助于指示函數(shù)是成功還是失敗。
一個選項具有底層類型,并且可以保存該類型的值,或者它可能沒有值。

使用選項

讓我們來分割功能的例子。下面的程序說明了這一點 -

讓我們寫一個函數(shù)div,并發(fā)送兩個參數(shù)給它20和5 

let div x y = x / y
let res = div 20 5
printfn "Result: %d" res

當你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

Result: 4

如果第二個參數(shù)為0,則程序拋出一個異常 

let div x y = x / y
let res = div 20 0
printfn "Result: %d" res

當你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

Unhandled Exception:
System.DivideByZeroException: Division by zero

在這種情況下,我們可以使用的選項類型返回一些(值)時,操作成功或None如果操作失敗。

下面的例子演示了如何使用的選項 

實例

let div x y =
   match y with
   | 0 -> None
   | _ -> Some(x/y)

let res : int option = div 20 4
printfn "Result: %A " res

當你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

Result: Some 5

選項的屬性和方法

選項類型支持以下屬性和方法 

屬性或方法類型描述
None'T option靜態(tài)屬性,使您能夠創(chuàng)建具有None值的選項值。
IsNonebool如果該選項的none則返回true。
IsSomebool如果該選項的值是不返回true。
Some'T option一個靜態(tài)成員,它創(chuàng)建一個值為notNone的選項。
Value'T返回基礎(chǔ)值,如果值為None,則拋出NullReferenceException。

例1

let checkPositive (a : int) =
   if a > 0 then
      Some(a)
   else
      None

let res : int option = checkPositive(-31)
printfn "Result: %A " res

當你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

Result: <null>

例2

let div x y =
   match y with
   | 0 -> None
   | _ -> Some(x/y)

let res : int option = div 20 4
printfn "Result: %A " res
printfn "Result: %A " res.Value

當你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

Result: Some 5
Result: 5

例3

let isHundred = function
   | Some(100) -> true
   | Some(_) | None -> false

printfn "%A" (isHundred (Some(45)))
printfn "%A" (isHundred (Some(100)))
printfn "%A" (isHundred None)

當你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

false
true
false
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號