我必须在多个案例中使用arithmetic on pointer to an incomplete type
,我想知道是否有更好的方法将下面的代码写入可能的单行?
func
答案 0 :(得分:2)
撰写扩展程序。
extension String
{
public mutating func replace(substrings: [String], with other: String)
{
substrings.forEach({ self = stringByReplacingOccurrencesOfString($0, withString: other) })
}
}
答案 1 :(得分:2)
一种可能的方式:
undefined
答案 2 :(得分:1)
让Foundation使用字符集优化多个搜索/替换操作可能更有效。 (您也可以使用正则表达式进行单个搜索/替换操作,但如果您需要替换的只是单个字符,则字符集可能会带来更好的性能 - 通常,您可以更具体地向API陈述问题,它可以提供更好的解决方案。)
extension String {
func stringByStrippingCharactersInSet(set: NSCharacterSet) -> String {
return self.componentsSeparatedByCharactersInSet(chars).joinWithSeparator("")
}
mutating func stripCharactersInSet(set: NSCharacterSet) {
self = self.stringByStrippingCharactersInSet(set)
}
}
奇怪的是,Foundation可以从字符串的开头/结尾修剪字符集,但不能从字符串中删除。它可以通过charset分割字符串,所以你要做的就是将它与一个空的分隔符拼接在一起。当然,为方便起见,您可以将其包装在您自己的扩展中:
{{1}}