我在F#中有以下打印示例
for row in data.Rows do
printfn "Example: (%s)" row.A
但我收到了这个错误
Script1.fsx(15,67):错误FS0001:此表达式应该具有 类型 字符串,但这里有类型 GUID
我没有找到任何打印Guid类型的例子。
我尝试将ToString()
方法应用于row.A
,但效果不佳
答案 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)"