目录
2.8 Kotlin 中的小魔术
到目前为止,我们已经学习了很多 Kotlin 方面的编程知识,相信现在的你已经有能力进行一些日常的 Kotlin 开发工作了。在结束本章内容之前,我们再来学习几个魔术类的小技巧,虽说是小技巧,但是相信我,它们一定会给你带来巨大的帮助。
2.8.1 字符串内嵌表达式
字符串内嵌表达式是我认为 Java 最应该支持的功能,因为大多数现代高级语言是支持这个非常方便的功能的,但是 Java 直到今天都还不支持,至于为什么,我也想不明白,或许Java 的开发 团队有不这么做的原因和道理吧。
不过值得高兴的是,Kotlin 从一开始就支持了字符串内嵌表达式的功能,弥补了Java 在这一点上的遗憾。在 Kotlin 中,我们不需要再像使用 Java 时那样傻傻地拼接字符串了,而是可以直接将表达式写在字符串里面,即使是构建非常复杂的字符串,也会变得轻而易举。
本书到目前为止,我都还没有使用过字符串内嵌表达式的写法,一直在使用传统的加号连接符来拼接字符串。在学完本节的内容之后,我们就会永远和加号连接符的写法说“再见”了。
首先来看一下 Kotlin 中字符串内嵌表达式的语法规则:
"hello, ${obj.name}. nice to meet you!"
可以看到,Kotlin 允许我们在字符串里嵌入 ${} 这种语法结构的表达式,并在运行时使用表达式执行的结果替代这一部分内容。
另外,当表达式中仅有一个变量的时候,还可以将两边的大括号省略,如下所示:
"hello, $name. nice to meet you!"
这种字符串内嵌表达式的写法到底有多么方便,我们通过一个具体的例子来学习一下就知道 了。在 2.5.4 小节中,我们用 Java 编写了一个 Cellphone 数据类,其中 toString() 方法里就使用了比较复杂的拼接字符串的写法。这里我将当时的拼接逻辑单独提炼了出来,代码如下:
fun ma