Đó là vì thông số format
không thực sự là string
. Đó là TextWriterFormat<'T>
và trình biên dịch F # chuyển đổi định dạng chuỗi thành loại đó. Nhưng nó không hoạt động trên các biến số string
, bởi vì trình biên dịch không thể chuyển đổi string
thành TextWriterFormat<'T>
khi chạy.
Nếu bạn muốn in nội dung của biến, bạn thậm chí không nên cố sử dụng printfn
theo cách này, vì biến có thể chứa thông số định dạng.
Bạn có thể sử dụng định dạng %s
:
printfn "%s" test
Hoặc sử dụng Net Console.WriteLine()
:
Console.WriteLine test
Đừng quên để thêm open System
ở phía trên cùng của tập tin nếu bạn muốn sử dụng lớp Console
.
Tôi muốn nói thêm rằng sử dụng 'Console.WriteLine' trong F # mã không thành ngữ, và 'phiên bản printf' là phổ biến hơn nhiều . –
Ah ok có ý nghĩa nếu trình biên dịch chuyển đổi nó tôi đoán. Kết thúc với printfn "% s" kiểm tra – CodeMonkey
bạn cũng có thể làm 'stdout.WriteLine test' nơi tôi đoán lợi thế duy nhất là nó là một char ngắn hơn và bạn không cần phải mở' System' –