首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift: String.join()如何使用自定义类型?

Swift: String.join()如何使用自定义类型?
EN

Stack Overflow用户
提问于 2014-08-30 10:20:38
回答 6查看 18.9K关注 0票数 19

例如:

代码语言:javascript
复制
var a = [1, 2, 3]    // Ints
var s = ",".join(a)  // EXC_BAD_ACCESS

是否可以使联接函数返回"1,2,3“?

扩展Int (或其他自定义类型)以符合某些协议?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-08-30 10:26:30

尝尝这个

代码语言:javascript
复制
var a = [1, 2, 3]    // Ints
var s = ",".join(a.map { $0.description })

或添加此扩展

代码语言:javascript
复制
extension String {
    func join<S : SequenceType where S.Generator.Element : Printable>(elements: S) -> String {
        return self.join(map(elements){ $0.description })
    }

  // use this if you don't want it constrain to Printable
  //func join<S : SequenceType>(elements: S) -> String {
  //    return self.join(map(elements){ "\($0)" })
  //}
}

var a = [1, 2, 3]    // Ints
var s = ",".join(a)  // works with new overload of join

联接定义为

代码语言:javascript
复制
extension String {
    func join<S : SequenceType where String == String>(elements: S) -> String
}

这意味着它需要一个字符串序列,您不能将一个int序列传递给它。

票数 29
EN

Stack Overflow用户

发布于 2015-08-25 09:35:28

Xcode 7.0 beta 6Swift 2,现在您应该使用[String].joinWithSeparator(",")

在您的示例中,仍然需要将Int更改为String类型,因此我添加了map()

代码语言:javascript
复制
var a = [1, 2, 3]                                       // [1, 2, 3]
var s2 = a.map { String($0) }.joinWithSeparator(",")    // "1,2,3"

Xcode 8.0beta 1Swift 3代码,略有更改为[String].joined(separator: ",")

代码语言:javascript
复制
var s3 = a.map { String($0) }.joined(separator: ",")    // "1,2,3"
票数 41
EN

Stack Overflow用户

发布于 2016-06-20 00:49:56

为了使您的生活更加完整,从Xcode 8.0 beta 1开始,在Swift 3中,您现在应该使用[String].joined(separator: ",")

这是Swift API的新"ed/ing“命名规则:

名称函数和方法根据它们的副作用

  • 那些没有副作用的人应该读成名词短语,例如x.distance(to: y),i.successor()。
  • 有副作用的人应该读成祈使动词短语,例如,print(x),x.sort(),x.append(y).
  • 始终如一地命名变异/非变异方法对。变异方法通常有一个具有类似语义的非变异变量,但它返回一个新值,而不是就地更新实例。Swift: API Design Guidelines
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25581324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档