心情不好的雨燕4,1

与往常一样,当新版本的Swift出现时,我会通读手册并提出问题供审核。 因此,这里我们使用Strings。 如您所知,字符串再一次是集合类型,因此不再是.characters,对此我们可能都非常感谢。

如何创建多行字符串?

使用三引号

 让x =“”“ 
他说她说
然后更多
然后更多
“”

注意,绿色的新兵,是确定缩进从何处开始的BOTTOM三重引号。 您可以添加缩进,也可以添加\以将一行连接在一起。

从字符串中获取子字符串时,它是什么类型? 串?

不,温柔的灵魂,不是弦乐。 它是SubString。

字符串和子字符串共享什么协议?

他们共享StringProtocol。

哦! 这就是为什么字符串操作类型如此频繁地将StringProtocol类型作为输入吗?

就像你说的那样。 你比你看起来聪明。

很高兴知道默认情况下复制可确保始终在后台复制作为真正的14克拉值类型的字符串。

你看到我在那里做什么了吗? 并非总是在后台复制它。 它通常通过引用传递,并且仅在您要使String突变时才执行复制。 由于这个邪恶的小把戏,您将获得更多的性能提升。 如果可以的话,请稍作努力。 一点点ol’-razzle-dazzle三卡牌游戏。

为什么它是邪恶的?

这不是真的邪恶。

哇,您可以在字符串后附加一个字符! 像您一样使用+进行串联?

不,那太明显了。 您必须使用

aString.append(“C”)

方法。

什么是字符串互通?

我认为您的意思是字符串插值。 这只是意味着使用变量将一个字符串插入另一个字符串。 就像使用C和其他语言一样。

您可以通过字符数组创建字符串吗?

你肯定可以,甜蜜的脸颊。 刚把那个吸盘扔进弦里,嘿嘿。

你在骚扰我吗?

你要我吗 您想让我发出触发警告,以免引起皮疹或其他事情吗?

你的举止很差。

我做。 我度过漫长的冬夜,为他们而悲伤。

什么是扩展字素簇?

好吧,你成功地做到了。 它是一个或多个unicode字符的序列,导致一个字符,即一个和一个唯一的人类可读字符。

那么,是否要遍历每个Unicode标量来计算字符串中的人类可读字符?

好吧,有点。 您不需要,但是.count属性可以。

那么count是否返回Unicode标量的数量?

没有。 它返回一个人类可读值的计数,但是要做到这一点,它必须读取String中每个有福的标量,所以在使用它之前先思考一下,好吗? 除了头套以外,还要用头做其他事情。

知道String.count总是== [NSString length]真是令人欣慰。

豌豆,只有在你的梦中。 我可以想到其他更快,更有效的救济形式。 NSString长度不计算人类可读的值,而是计算UTF 16字符串表示形式中的16位代码单元。

天哪,你怎么这么讨厌?

谁说我逃脱了?

那么至少.index不必读取字符串中的每个Unicode标量吗?

你真的生活在自己的小宇宙中,不是吗? 而且你不听。 索引还必须遍历字符串中的每个Unicode标量。

即使这样,您仍然可以将整数值用作String的索引! 太棒了!

不,你不能。 索引不会转换为数组中的物理位置。 没有整数。

那么startIndex获得String中的第一个位置吗?

是的 我可以看到您的错误像麦克卡车一样对我开着车。 它来了。

那么endIndex获取字符串中的最后一个位置?

然后,您修剪了格兰尼(Granny),后者正悄悄地试图穿过水果摊上的东西。 没有。 endIndex获取字符串中最后一个字符之后的位置。

这是获取字符串中最后一个字符的惯用法。

让i2 = message.index(之前:message.endIndex)

太运动了!

哦,不是吗? 接下来,让我们在温布尔登赛季踢个高球。 我去找你

如果字符串为空,则startIndex和endIndex会发生什么?

终于,他们找到了实现兄弟般和真正平等的梦想。 他们是平等的。

使用Index时,请记住之前:,之后:和offsetBy :。 他们是您的朋友,如果您可能有朋友。

因为String现在是一个集合,所以,可以说,它给出了一定的想法,甚至是弗里森!

哦,确实如此! 您可以在任何Collection类型(例如Array,Set或Dictionary)上使用before,after和offsetBy。

如何在字符串中插入和删除内容?

就像你说的那样。 您使用插入和删除。 如果要插入字符,则只需传入字符即可。 如果要插入字符串,则必须使用contentsOf:标签。

为了确保两个字符串是另一个母亲的兄弟,您如何检查它们的完全相等性?

嗯? 炫耀男生拉丁? 装腔作势。 您可以使用==和!=进行预期的测试。

等角线等效。 这是我最喜欢的短语之一,但我不知道这是什么意思?

语言向导还有很多您不知道的地方。 该短语在规范上是等效的。 这意味着在转换为人类可读格式时,字符串可能在两种情况下由不同的基础Unicode BUT表示,基础Unicode不用紧记。 人们看到相同的字母和标记对他们来说意义重大。 非常非常非常

如何快速检查其他字符串的字符串开头和结尾?

如果我是你,我只会问一个人。 但是,如果您真的要使用Swift,可以使用hasPrefix和hasSuffix。 毫无疑问,您将取得巨大的成功。

我无法访问基础Unicode?

在您的情况下,更多的是“我不会”。 或“某人应阻止您”。 我无法想象您会如何处理自己力所能及的事情。 但是,如果您无法抗拒,则可以使用utf8,utf16和utfScalars属性。 最后一个返回一个21位单元,等效于UTF32。 这足以使您陷入可能无法摆脱的麻烦。 但可喜的是,您可能永远不会知道。

当招聘人员自豪地告诉您他们正在寻找充满激情的摇滚明星时,您对他们怎么说?

我无法在此打印我告诉他们的内容。 不要点击它们,这会给您带来麻烦。 告诉他们:这是工作。 它不需要激情。 它需要能力,洞察力,智慧,纪律,信心和能力。 如果您不是很出色并且希望人们不要注意到,那么激情就是您所需要的。