Data Types
String Templates
Insert values and expressions into strings.
strings
A string template starts with `$` and can include simple expressions.
String Templates
StringsTemplates.kt
Replay: real traced execution (multi-file project)
fun main() {
val name = "Mira"
val lessons = 3
val message = "$name has $lessons lessons"
val detail = "${name.length} letters"
println(message)
println(detail)
}
fun main() {
val name = "Ada"
val lessons = 3
val message = "$name has $lessons lessons"
val detail = "${name.length} letters"
println(message)
println(detail)
}
fun main() {
val name = "Lin"
val lessons = 3
val message = "$name has $lessons lessons"
val detail = "${name.length} letters"
println(message)
println(detail)
}
name ← Mira, lessons ← 3, message ← Mira has 3 lessons, detail ← 4 letters
1fun main() {2 val name→ Mira = "Mira" //@name="Ada", "Lin"3 val lessons→ 3 = 34 val message→ Mira has 3 lessons = "$nameMira has $lessons3 lessons"5 val detail→ 4 letters = "${name.length4} letters"67 println(messageMira has 3 lessons)8 println(detail4 letters)9}outputMira has 3 lessons 4 letters
name ← Ada, lessons ← 3, message ← Ada has 3 lessons, detail ← 3 letters
1fun main() {2 val name→ Ada = "Ada"3 val lessons→ 3 = 34 val message→ Ada has 3 lessons = "$nameAda has $lessons3 lessons"5 val detail→ 3 letters = "${name.length3} letters"67 println(messageAda has 3 lessons)8 println(detail3 letters)9}outputAda has 3 lessons 3 letters
name ← Lin, lessons ← 3, message ← Lin has 3 lessons, detail ← 3 letters
1fun main() {2 val name→ Lin = "Lin"3 val lessons→ 3 = 34 val message→ Lin has 3 lessons = "$nameLin has $lessons3 lessons"5 val detail→ 3 letters = "${name.length3} letters"67 println(messageLin has 3 lessons)8 println(detail3 letters)9}outputLin has 3 lessons 3 letters
Follow the Template
namestarts asMira.lessonsis3.messagebecomesMira has 3 lessons.detailbecomes4 letters.- The program prints both lines. | name | message | detail | | --- | --- | --- | | Mira | Mira has 3 lessons | 4 letters | | Ada | Ada has 3 lessons | 3 letters | | Lin | Lin has 3 lessons | 3 letters |
Exercise: StringsTemplates.kt
Reproduce Mira has 3 lessons and 4 letters, then use the pinned names Ada and Lin to predict each detail line.