F#入門學習(十三)---選項

選項表示有兩種取值的狀態:有值或者無值。
有值用Some()取值。我終於知道前面的學習Some是什麼意思了……
無值用關鍵字None表示。


  1. 定義選項常量
let x1 : int option = Some(2)
let x2 : int option = None

結果爲:
val x1 : int option = Some 2
val x2 : int option = None

int選項的函數特徵是:int option.

  1. 定義函數類型的選項
let keepIfPositive (a:int) = if a>0 then Some(a) else None

let x1 = keepIfPositive 12
let x2 = keepIfPositive 0
let x3 = keepIfPositive -12

結果爲:
val keepIfPositive : a:int -> int option
val x1 : int option = Some 12
val x2 : int option = None
val x3 : int option = None

  1. 選項模式匹配
let exists (x : int option) = 
    match x with
    | Some(x) -> true
    | None -> false

let x1 = exists (Some(22))
let x2 = exists None

結果爲:
val exists : x:int option -> bool
val x1 : bool = true
val x2 : bool = false

這種結構通常被用來實現異常控制。


更多的選項靜態類型函數的使用可以參考書籍。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章