F# printf string
That's because the format
parameter is not actually a string
. It's TextWriterFormat<'T>
and the F# compiler converts the string format into that type. But it doesn't work on string
variables, because the compiler can't convert the string
to TextWriterFormat<'T>
at runtime.
If you want to print the content of the variable, you shouldn't even try to use printfn
this way, because the variable could contain format specifications.
You can either use the %s
format:
printfn "%s" test
Or use the .Net Console.WriteLine()
:
Console.WriteLine test
Don't forget to add open System
at the top of the file if you want to use the Console
class.
In line with what svick said, you might also try this:
let test = "aString"
let callMe = printfn (Printf.TextWriterFormat<_> test)
callMe
In addition to answers below. You may also write like this:
let test = "aString"
let print =
printfn $"{test}"