2016-03-22 10 views
2

私はSome Stringというオプションの文字列を返すライブラリを持っています。ocamlのオプション文字列

これはどういう意味ですか - 私は空でない文字列を受け取りましたか?または空でもよい文字列を受け取りましたか?一般的に、タイプのためにSomeのセマンティクスを決定するのは誰ですか?言語は基本型に対してそれを指定していますか?

ありがとうございます!

+1

例としては、除算を行い結果を文字列で返す '' div_string:int - > int - > string option''などがあります。 2番目の引数が '' 0''の場合、関数は '' None''を返すことができます。これは '' string option''型です。この結果は、無効な操作が実行されたことを示します。 – objmagic

+0

そのタイプの定義: 'type 'a option = None |いくつかの 'a'。 –

答えて

3

Some xであり、タイプではありません。ライブラリによって返される型はstring optionです。値が常にSome xのように見える場合、それは別の質問です。しかし、図書館の作者がそれにはタイプstringを使うことができるので、それはかなりありそうもありません。オプションタイプを使用すると、Noneを使用して値の不在を表すことができます。

タイプ'a optionは、すべてのタイプについて同じセマンティクスを持っています('a)。タイプ'a optionは、存在していてもいなくてもよいタイプの値を表します。値が存在する場合、形式はSome xです。ここで、xは型の値です。値が存在しない場合、形式はNoneです。

タイプstring optionの値は、Noneすることができ、またはそれはSome ""することができ、またはそれは任意の文字列"xxx"ためSome "xxx"ことができます。特別な文字列固有の意味はありません。

関連する問題