【问题标题】:in smlnj how do you convert "string option" to "string"?在 smlnj 中,如何将“字符串选项”转换为“字符串”?
【发布时间】:2011-09-10 06:06:18
【问题描述】:

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

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

【问题讨论】:

    标签: string input option sml smlnj


    【解决方案1】:

    例如:

    val x = 一些“字符串”;

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

    val stringfromoptionstring = 某些 s 的 case x => s | NONE => "没有找到字符串";

    【讨论】:

      【解决方案2】:

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

      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 就足够了
      【解决方案3】:

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

      当然,如果你的值是None,就没有字符串可以检索了。因此,您需要处理出现None 的情况,就像您可能在其他语言中处理空值一样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-16
        • 2018-04-30
        • 2014-05-26
        • 1970-01-01
        • 1970-01-01
        • 2019-10-10
        • 2019-01-05
        相关资源
        最近更新 更多