如何将Text.Printf的结果转换为String?

时间:2016-04-18 19:10:27

标签: string haskell return printf

Text.Printf的结果是PrintfType类型的变量。

有没有办法将此结果转换为String?

我想要这样的东西:convertToString :: PrintfType - >串

我到处搜寻,但找不到任何东西。

1 个答案:

答案 0 :(得分:4)

  

Text.Printf的结果是PrintfType类型的变量。

没有。 PrintfType是对类型的约束,而不是类型本身。请注意PrintfType提供的module Text.Printf的实例是:

IsChar c => PrintfType [c]
(~) * a () => PrintfType (IO a)
(PrintfArg a, PrintfType r) => PrintfType (a -> r)
  

有没有办法将此结果转换为String?

无需转换,String ~ [Char]并且存在实例IsChar Char。因此,满足PrintfType String的约束。

  

我想要这样的东西:convertToString :: PrintfType - >串

这是没有意义的,因为您使用PrintfType作为Type而不是约束。