【发布时间】:2011-09-10 06:06:18
【问题描述】:
请帮助我不知道字符串选项的作用。
是否可以将字符串选项转换为字符串?
【问题讨论】:
标签: string input option sml smlnj
请帮助我不知道字符串选项的作用。
是否可以将字符串选项转换为字符串?
【问题讨论】:
标签: string input option sml smlnj
例如:
val x = 一些“字符串”;
(*你可以通过这样做简单地得到它:*)
val stringfromoptionstring = 某些 s 的 case x => s | NONE => "没有找到字符串";
【讨论】:
正如已经指出的,您可以使用模式匹配来获得所需的结果。 所以,是这样的:
fun foo(NONE) = ""
| foo(SOME a) = a;
但是你可以省去麻烦,直接使用SML library 中的Option.valOf 函数:
Option.valOf(SOME "my string");(或者只是 valOf(SOME "my string");,正如 newacct 在 cmets 中指出的那样。)
【讨论】:
Option.valOf 已经包含在顶层中,所以只需 valOf 就足够了
ML 中的“选项”类型就像 .NET 世界中的 Nullable。它是具有两个值的可区分联合,None 和 Some of 'a(对于通用的 'a option 类型)。要转换为字符串,您需要获取'a 的值,这可以通过正常的模式匹配结构来完成。
当然,如果你的值是None,就没有字符串可以检索了。因此,您需要处理出现None 的情况,就像您可能在其他语言中处理空值一样。
【讨论】: