【问题标题】:Swift, Joining (Implicitly Unwrapped) Optional Strings with a joinerSwift,使用连接器连接(隐式展开)可选字符串
【发布时间】:2015-04-02 10:05:32
【问题描述】:

我尝试加入一些[String!]。所以我就像this

extension String {
    func join(strings: String!... ) -> String {
        return self.join(strings.filter({ $0?.isEmpty == false }).map {$0 as String})
    }
}

var country: String! = nil
var city: String! = ""
var address: String! = "Nowon"
var detailAddress: String! = "Gongneung-dong"

let combinedAddress = " ".join(country, city, address, detailAddress)

但是,它似乎仍然很复杂。我该如何优化呢?

【问题讨论】:

  • 你的代码有什么问题?你得到什么输出或错误?如果代码按预期工作,而您的问题只是关于优化,为什么您觉得必须优化?代码是一个严重的瓶颈吗?记住一般的经验法则——首先编写清晰的代码,并仅在必要时进行优化。
  • @AaronD 我认为展开过程很复杂。我猜想这种方式比这个更简单。无论如何,现在我记得 - 首先要清晰地编写代码,并仅在必要时进行优化。谢谢你的评论。 :)

标签: ios swift join forced-unwrapping


【解决方案1】:

如果你总是知道它们可以被解包,那么你可以很容易地加入字符串

var a = "this is a "
var b = "this is b "
var c = "this is c"
let myString = a + b + c

我在我的代码中做了类似的事情,但首先我检查一个字符串是否为空

if a.isEmpty == false { }

这是一种快速的方法

【讨论】:

  • 感谢您的回答。如果它们可以解包,我们可以在String 中使用join 函数。
猜你喜欢
  • 2016-04-24
  • 1970-01-01
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多