I have a user
object with a few properties that I can access using dot notation.
For example, user.fullName
outputs a String like Firstname Lastname
.
How do I access these properties within a println
statement that uses string interpolation?
I've tried the following:
println(s"user's full name is $user.fullName")
However, it doesn't seem to work with dot notation and only parses the entire $user
object, interpreting the remaining fullName
section as a string rather than a property. This incorrectly outputs:
>> user's full name is User(...).fullName
The following is what I'm after:
>> user's full name is Firstname Lastname
Help appreciated!
String Interpolation refers to substitution of defined variables or expressions in a given String with respected values. String Interpolation provides an easy way to process String literals. To apply this feature of Scala, we must follow few rules: String must be defined with starting character as s / f /raw.
The s String Interpolator Here $name is nested inside an s processed string. The s interpolator knows to insert the value of the name variable at this location in the string, resulting in the string Hello, James . With the s interpolator, any name that is in scope can be used within a string.
Hence, we discussed three types of Scala string interpolators: s String Interpolator, f String Interpolator, and raw String Interpolator in Scala with their examples.
Formatting: Strings can be formatted using the printf() method to get output in required formats.
Solved - looks like curly braces help interpret the entire variable, including properties that are accessed through dot notation.
The following code works:
println(s"user's full name is ${user.fullName}")
This outputs the following as expected:
>> user's full name is Firstname Lastname
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With