代码之家  ›  专栏  ›  技术社区  ›  Pratik Deoghare

Haskell中的字符串格式

  •  32
  • Pratik Deoghare  · 技术社区  · 14 年前

    哈斯克尔等于什么?

    string str = string.Format("{0} {1}",10,20); // C#
    
    4 回复  |  直到 7 年前
        1
  •  32
  •   newacct    14 年前

    GHC中有一个printf模块。

    import Text.Printf
    str :: String
    str = printf "%d %d" 10 20
    

    不过,这样做可能更简单

    str = show 10 ++ " " ++ show 20
    
        2
  •  23
  •   Dmitry Bespalov    11 年前

    你可以用 format 功能由 text-format-simple 包裹:

    import Text.Format
    format "{0} {1}" [show 10, show 20]
    

    此函数具有签名:

    format :: String -> [String] -> String
    

    所以您所需要的只是将参数作为字符串提供。
    另一个例子:

    format "Some {0} believes that 1 + 1 = {1}." ["people",show 10]
    
        3
  •  7
  •   Shersh    7 年前

    在这里输入答案,以防有人搜索格式库 哈斯克尔 在StackOverflow上。有一个类型安全和快速格式化库 fmt 现在。使用它,您可以编写如下代码:

    > "There are "+|n|+" million bicycles in "+|city|+"."
    
        4
  •  4
  •   ulidtko    11 年前

    这就是你要找的吗?

    printf "%d %d" 10 20
    

    Text.Printf .