【问题标题】:Convert char to string in OCaml在 OCaml 中将 char 转换为字符串
【发布时间】:2013-12-24 19:54:09
【问题描述】:

我想将 char 转换为字符串,但我没有找到函数 string_of_char。我想只使用 Pervasives 中的函数来做到这一点。

【问题讨论】:

  • 我真的建议你正式学习ocaml,这里有一本最近最好的书,它的html版本是免费的:realworldocaml.org/v1/en/html/index.html
  • 仅使用 Pervasives 中的函数是不可能的,并且接受的答案不尊重此约束,因此最好将其从问题中编辑出来(连同“感谢你帮忙”,这不符合 SO 准则)。如果您的意思是“来自默认标准库”,那么使用 String.make 的答案就可以了。如果您的意思是“使用一些标准库”,那么使用 Core 的也可以。

标签: string char type-conversion ocaml


【解决方案1】:

你可以使用 String.make :)

String.make 1 mychar

【讨论】:

  • 我说我只想使用 Pervasives 中的函数
  • Pervasives 中没有这个功能。只需阅读手册。
  • 人们不假思索地投票!在这种情况下你为什么不给我投票?
  • 您提出了很多问题,您应该能够通过自己的很少研究来回答这些问题。在我看来,这不是 StackOverflow 的一个很好的用途(可能是那些投票给你的人——在这种情况下不是我的 FWIW)。
  • 为什么? String 模块是标准库的一部分。
【解决方案2】:

如果你使用Core,你可以写

open Core.Std

let s = Char.to_string 's'

【讨论】:

    【解决方案3】:

    另一个你可以使用的:

    Char.escaped 'a'
    

    【讨论】:

      【解决方案4】:

      如果您不想要 OCaml* 附带的标准库之外的任何依赖项,您还可以使用格式字符串将字符转换为字符串。

      从一个字符中创建一个 1 字符的字符串

      Printf.sprintf "%c" ch
      

      (注意大写C)为给定字符创建一个包含OCaml表示法的字符串

      Printf.sprintf "%C" ch
      

      例如:

      # Printf.sprintf "%C" '\\';;
      - : string = "'\\\\'"
      # Printf.sprintf "%C" 'a';;
      - : string = "'a'"
      

      *Printf 本身不是Pervasives 的一部分

      【讨论】:

        猜你喜欢
        • 2018-07-22
        • 1970-01-01
        • 1970-01-01
        • 2020-12-18
        • 1970-01-01
        • 1970-01-01
        • 2018-03-27
        • 2013-05-13
        • 2020-09-30
        相关资源
        最近更新 更多