Raw strings treat backslashes (\
) as a literal character. In a normal string, a backslash acts as an escape character that can be used for various purposes.
Here is an example of \n
starting a new line and \t
adding a tab in between the string:
void main(){String str1 = "First line \nSecond line";print(str1);String str2 = "First line \tSecond line";print(str2);}
If str1
and str2
were raw strings, \n
and \t
would be treated as literal characters.
In Dart, a raw string can be created by prepending an r
to a string:
void main(){String str1 = r'First line \nSecond line';print(str1);String str2 = r'First line \tSecond line';print(str2);print(r'\'); // Single backslash}
The single backslash in line 8 cannot be printed without r
. If it is, the backslash will be treated as an escape character.
In conclusion, the raw string type can be used whenever an actual backslash is required within a string.
An alternative way to obtain a backslash within a string is to write two backslashes instead of one. The first backslash will act as an escape character for the second one:
void main(){String str = 'First line \\nSecond line';print(str);print('\\'); // Single backslash}