2011-06-07 50 views

回答

3

ML中的“option”类型就像.NET世界中的Nullable。它是一个具有两个值的区别联合,NoneSome of 'a(对于通用'a option类型)。要转换为字符串,您需要获取'a的值,您可以通过正常的模式匹配结构来执行此操作。

当然,如果您的值是None,将不会检索字符串。因此,您需要处理出现None的情况,就像您可能在其他语言中处理null一样。

8

正如已经指出的那样,您可以使用模式匹配来获得所需的结果。 所以,这样的事情:

fun foo(NONE) = "" 
    | foo(SOME a) = a; 

但是你能抽出的麻烦和通过只是在做用Option.valOf功能从SML library代替:

Option.valOf(SOME "my string");(或者只是valOf(SOME "my string");作为newacct在评论中指出。)

+1

p.s. 'Option.valOf'已经包含在顶层,所以'valOf'就足够了 – newacct 2011-06-09 07:14:18

0

例如:

val x = SOME“String”;

(*你可以简单地得到它,这样做:*)

VAL stringfromoptionstring =情况下,x一些作者的=>取值 | NONE =>“找不到字符串”;

相关问题