在smlnj如何将“字符串选项”转换为“字符串”?

时间:2011-06-07 16:46:21

标签: string input option sml smlnj

请帮助我不知道字符串选项的作用。

是否可以将字符串选项转换为字符串?

3 个答案:

答案 0 :(得分:8)

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

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

但是您可以省去麻烦并使用Option.valOf中的SML library功能,而不仅仅是:

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

例如:

val x = SOME“String”;

(*你可以通过这样做来获得它:*)

val stringfromoptionstring = SOME的案例x =>小号                                      | NONE => “找不到字符串”;