F# - printfn Guid

时间:2016-01-12 22:32:12

标签: f#

我在F#中有以下打印示例

for row in data.Rows do 
     printfn "Example: (%s)" row.A

但我收到了这个错误

  

Script1.fsx(15,67):错误FS0001:此表达式应该具有   类型       字符串,但这里有类型       GUID

我没有找到任何打印Guid类型的例子。 我尝试将ToString()方法应用于row.A,但效果不佳

3 个答案:

答案 0 :(得分:5)

这里有两个选项:

for row in data.Rows do 
     printfn "Example: (%s)" (row.A.ToString())

for row in data.Rows do 
     printfn "Example: (%A)" row.A

此处%A可用于任何类型,编译器会自动为您打印

答案 1 :(得分:4)

您可以将%A用于Guid,如下所示:

printfn "Example: (%A)" row.A

使用%s时,类型必须是字符串。

MSDN Documentation提供了有关使用哪种格式类型及其行为方式的更多信息。

答案 2 :(得分:4)

除了已经给出的答案之外,值得注意的是Guid也支持ToString的重载,让您可以选择控制GUID字符串的格式化。

例如,你可以这样写出来:

printfn "Example: (%s)" (row.A.ToString "n")

如果要省略连字符(Example: (78e6fb89dc5045988d445c4d8aef4e28))。

或者你可以使用stringf,如果你想要一个管道而不是括号的替代品:

row.A |> stringf "n" |> printfn "Example: (%s)"

或者如果您不需要格式化选项:

row.A |> string |> printfn "Example: (%s)"