首页

如何将数组转化成字符串(array joined)

By 前端达人
Published in C-高级进阶
August 05, 2022
1 min read
如何将数组转化成字符串(array joined)

本篇文章,将和大家一起讨论下,如何将数组转换成一个字符串。 首先我们来看一组作者的字符串数组

var authors = ["Meng To", "Surya Anand", "Sai Kambampati"]

我们想将上述字符串序列化一个字符串,如下所示:

"Taught by Meng To, Surya Anand, and Sai Kambampati"

我们该如何处理呢?

创建函数

首先,在编写测试相关的函数,使用 xcode 提供的 playground 非常好用。

接下来,我们创建一个函数将您的数组转换为序列化字符串并在 Playground 中对其进行测试,如下所示:

func serialized(array: [String]) -> String{
    array.count <= 2 ? array.joined(separator: " and ") : array.dropLast().joined(separator: ", ") + ", and " + array.last!
}

这里我们使用 dropLast() 方法(注:此方法从后往前删除指定数目的数据项,如果不填写,则默认为1,删除最后一项),先将数组中最后一项删除,使用 ”,“ 符号进行连接,然后最后一项使用 and 字符连接。

点击 play 图标,在 playground 运行我们编写的代码,正如我们期望的一样,因此我们可以在项目中进行使用。

示例
示例

改写成 extension 扩展形式

如果你打算在项目的很多地方使用这个功能,最好把它变成一个扩展( extension )。扩展允许您向 Swift 中的现有类、结构、枚举或协议添加功能,还可以使您的代码更简洁。

在我们的例子中,我们希望将序列化函数转换为项目的可重用扩展。因此,我们可以创建一个名为 Extensions.swift 的新文件,并将以下扩展名添加到 BidirectionalCollection 协议:

extension BidirectionalCollection where Element: StringProtocol {
    var serialized: String {
        count <= 2 ?
            joined(separator: " and ") :
            dropLast().joined(separator: ", ") + ", and " + last!
    }
}

使用上面的代码,我们可以简单地在我们项目中的任何地方调用 .serialized 字符串集合(或 BidirectionalCollection 协议),我们将得到序列化的字符串:

var authors = ["Meng To", "Surya Anand", "Sai Kambampati"]
var serializedAuthors = authors.serialized
// Output: "Taught by Meng To, Surya Anand, and Sai Kambampati"

版权声明

注:本文属于原创文章,版权属于「前端达人」公众号及 SwiftUI.cc 所有,谢绝一切形式的转载

更多精彩内容,请关注「前端达人」

欢迎关注「前端达人」
欢迎关注「前端达人」


Tags

#高级#swift#array
Previous Article
「语法基础」关于可选择类型 optional 总结(二)
前端达人

前端达人

专注前端知识分享

Table Of Contents

1
创建函数
2
改写成 extension 扩展形式
3
版权声明

Related Posts

如何在 WebView 里高亮显示代码片段(Code Highlighting)
August 15, 2022
1 min

前端学习站

前端达人官网VUE官网React官网TypeScript官网

公众号:前端达人

京ICP备16033841号-8