Trong Swift 2, join
đã trở thành joinWithSeparator
và bạn gọi nó trên mảng.
Trong filter
, isEmpty
nên được gọi trên mục lặp lại hiện tại $0
.
Để thay thế khoảng trắng và ký tự xuống dòng với các nhân vật không gian độc đáo như trong câu hỏi của bạn:
extension String {
func condenseWhitespace() -> String {
let components = self.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
return components.filter { !$0.isEmpty }.joinWithSeparator(" ")
}
}
let result = "Hello World.\nHello!".condenseWhitespace() // "Hello World. Hello!"
Bởi vì chức năng của bạn không có bất kỳ tham số bạn có thể biến nó thành một tài sản thay vì:
extension String {
var condensedWhitespace: String {
let components = self.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
return components.filter { !$0.isEmpty }.joinWithSeparator(" ")
}
}
let result = "Hello World.\nHello!".condensedWhitespace // "Hello World. Hello!"
Trong Swift 3 thậm chí còn có nhiều thay đổi hơn.
Chức năng:
extension String {
func condenseWhitespace() -> String {
let components = self.components(separatedBy: NSCharacterSet.whitespacesAndNewlines)
return components.filter { !$0.isEmpty }.joined(separator: " ")
}
}
let result = "Hello World.\nHello!".condenseWhitespace()
tài sản:
extension String {
var condensedWhitespace: String {
let components = self.components(separatedBy: NSCharacterSet.whitespacesAndNewlines)
return components.filter { !$0.isEmpty }.joined(separator: " ")
}
}
let result = "Hello World.\nHello!".condensedWhitespace
công trình đối với tôi :) thanks –