DEV Community

AllenZhu
AllenZhu

Posted on • Updated on

F# For Dummys - Day 6 Format

Today we learn how to format the output of println, and a new type char

what is formatting?

formatting is converting values into strings according to a specified format
we introduce 2 ways to format:

  • String interpolation: one way to combine variables and text is to use something called interpolation actually we used it yesterday
let name = "Lucy"
let age = 14
printfn $"my name is {name}, I'm {age} years old"
Enter fullscreen mode Exit fullscreen mode

$ tell the compiler: please use the variable we defined before in this string
{} indicate what exactly the variables we need, here in this example is {name} and {age}
so it will replace the value of variables at the location of brace
like type of age is int, it's converted to string '14' in the final output, we didn't transfer it explicitly

  • Specifiers: You can also use format specifiers as part of what you're trying to print. Using specifiers is the most commonly used way to format in F# Let's use specifier to format in our example:
let name = "Lucy"
let age = 14
printfn "my name is %s, I'm %i years old" name age
Enter fullscreen mode Exit fullscreen mode

you can see the output is the same
%s is for name, it's for string type
%i is for age, it's for int type
we introduce 4 of them today:

Image description

%b for bool

let is_this_apple = true
let is_this_orange = false

printfn "Is this an apple? %b" is_this_apple
printfn "Is this an orange? %b" is_this_orange
Enter fullscreen mode Exit fullscreen mode

%c for char
we have learned string type to describe a text, it represents a sequence of characters
while char represents a single character, like 'a', 'b', 'c', 'd' or '!', '@', '#', '$'
string and char are different types, not just the length, you can not concat them like this:

let str = "Hello"
let ch = '!'
let result = str + ch

printfn "%s" result  // Output: Hello!
Enter fullscreen mode Exit fullscreen mode

will get error: The type 'char' does not match the type 'string'

Image description

we can transfer a char to string like this, then can concat them properly

let str = "Hello"
let ch = '!'
let result = str + (string)ch

printfn "%s" result  // Output: Hello!
Enter fullscreen mode Exit fullscreen mode

the full specifiers for other types are here

Top comments (0)