2015-04-02 27 views
0

我試過加入一些[String!]。所以我就要做像thisSwift,Joining(隱式解包)帶細木條的可選字符串

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) 

但是,它仍然看起來是複雜。我如何優化這個?

+1

你的代碼有什麼問題?你得到什麼輸出或錯誤?如果代碼按預期工作,並且您的問題僅僅是優化,您爲什麼覺得需要優化?代碼是一個嚴重的瓶頸嗎?記住一般的經驗法則 - 先編碼,然後在必要時進行優化。 – 2015-04-02 10:45:00

+0

@AaronD我認爲它在展開過程中很複雜。我猜想,這種方式存在更簡單。無論如何,現在我記得 - 首先清晰地編碼,並在必要時進行優化。謝謝你的評論。 :) – 2015-04-02 10:59:40

回答

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 { } 

是一個快速的方法來做到這一點

+0

感謝您的回答。如果它們可以解包,我們可以在'String'中使用'join'函數。 – 2015-04-13 09:58:32

相關問題