Dart – Interesting facts about String Interpolation
In this post, we will learn a few interesting things about String interpolation in Dart.
1. Syntax:
The value of an expression can be placed inside a string using:
${expression}
final coflutter = 'Coflutter'; print('Hello ${coflutter}. Your name has ${coflutter.length} characters.'); // Hello Coflutter. Your name has 9 characters.
2. If the expression is a single identifier (variable), the brackets ({ }) can be omitted.
final coflutter = 'Coflutter'; print('Goodbye $coflutter.'); // Goodbye Coflutter.
3. if..else inside the bracket
I don’t recommend this because it will make your code more difficult to read, but here I just show you what the language can do.
final password = 'password'; print('The password is ${password.length > 8 ? 'OK' : 'weak'}!'); // The password is weak!
4. Complex expression inside the brackets
final password = 'password'; print('Password length is: ${((String pwd) { return pwd.length; })(password)}.'); // Password length is: 8.
5. Object
If an object is placed inside the brackets, Dart internally calls toString() on that object. So that you don’t need to call toString() yourself.
(I also wrote a blog about How to print an object in Dart here).
class Student { final String name; final int age; Student(this.name, this.age); @override String toString() { return 'Student: {name: ${name}, age: ${age}}'; } } final student = Student('Coflutter', 30); print('Info: $student'); // Info: Student: {name: Coflutter, age: 30}
Happy coding! And please don’t hesitate to add your comments!
The original post is here. You can find other posts about Dart/Fluter on my Coflutter blog.
ABOUT NEXTFUNC
Nextfunc is a software development outsourcing company specialized in delivering services and solutions for web, mobile apps using native SDK and cross-platform frameworks. As we are living in such an ever-evolving world, our team truly understand the frequent changes in the needs and demands of our customers. With a team full of young yet talented specialists, we are here to provide customers across the globe with the best cutting-edge technologies.