Swift 中对 String 类型的 substring() 方法都被标记为不推荐(deprecated)了,那该如何实现 substring 的功能呢?

根据Xcode的提示可以使用slicing(切片)的方式来实现substring的功能:
以字符串 let str = "0123456789" 为例:
从开始到第一个等于5的字符之前的子串:
|
|
从开头到第一个等于5的字符
|
|
从第一个5开始到字符串末尾
|
|
前7个字符
|
|
String切片后返回的结果类型是 Substring。
struct Substring
Substring 不会为字符串额外分配空间,而是与原始字符串共享存储。
划重点: 因为
Substring会持有对原始字符存储的引用计数,所以要确保子串的生命周期不长于源字符串的生命周期,以免内存泄漏。