2016-01-12 33 views
2

我具有以下印刷在F#F# - printfn的Guid

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

例如但我接收此錯誤

Script1.fsx(15,67):錯誤FS0001:該表達預期具有 型 字符串,但這裏有類型 的Guid

我沒有找到典型的Guid印刷的任何實例即 我想申請ToString()方法row.A,但它不工作,以及

回答

4

可以使用%A爲一個GUID,像這樣:

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

當使用%s,類型必須是一個字符串。

MSDN Documentation有更多關於使用哪種格式類型及其行爲的信息。

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

此外,第三個選項:'%O'。 – Daniel

4

除已經給出的答案,值得注意的是Guid也支持ToString的超載,讓您可以選擇控制如何格式化GUID字符串。如果你想省略連字符(Example: (78e6fb89dc5045988d445c4d8aef4e28)

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

你可以,例如,寫出來是這樣的。

或者你可以使用stringf對於這一點,如果你想與管道,而不是括號替代:

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

,或者如果你不需要格式化選項:

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