首先,這些都不是OCaml的文檔:-)這是一個附加庫。該特定存儲庫已過時(與Sourceforge上的其他幾乎所有其他存儲庫一樣),其選項模塊已作爲BatOption模塊併入OCaml Batteries Included。電池也是一個附加庫,但是它是使用最廣泛的庫之一。
爲你決定你想要做什麼,當值實際上是None
您可以編寫自己的函數來提取字符串選項字符串,只要。在那種情況下,當然沒有字符串。
一種可能性就是提高在這種情況下的例外。如果你是積極的,總會有一個字符串,這個例外永遠不會發生。如果確實發生,你就知道你有問題。所以,你可以寫這樣的功能:
let string_of_string_option so =
match so with
| None -> failwith "string_of_string_option, no string"
| Some str -> str
(此功能的工作原理是List.hd
;也就是說,它是拋出一個異常,當輸入無效的部分功能。)
你也可以寫您自己的default
版本;這是一個非常簡單的功能:
let my_default dflt vo =
match vo with
| None -> dflt
| Some v -> v
一個很好的方法來獲取當前OCaml的文檔是要經過ocaml.org。
另一種非常流行的附加庫是簡街核心,描述here。它有一個名爲Option.value
的函數,它與您正在查找的default
函數類似。 (其實這個名字好像對我來說好一點。)
嗨,傑弗裏!感謝你及時的答覆!我調整了類似的東西,但在編譯期間,我得到'錯誤:未綁定值string_of_string_option'。我打電話給''用string_of_string_option String.Set.choose free_Vars' – cyber101
嗯。我並不是說已經有一個名爲'string_of_string_option'的函數。我說你可以很容易地寫出你自己的。你也可以編寫你自己的'default'版本。或者你可以使用OCaml Batteries包含的'default'。你有很多選擇:-) –