【发布时间】:2016-12-14 15:21:18
【问题描述】:
我相信你会像这样对[String] 进行扩展...
extension Sequence where Iterator.Element == String {
假设我想改变数组 - 我的意思是说,改变数组中的每个字符串。怎么办?
extension Sequence where Iterator.Element == String {
func yoIzer() {
for s in self { s = "yo " + s }
}
}
这行不通。
(这只是一个示例,可能需要更复杂的处理:您可能希望避免只使用过滤器。)
【问题讨论】:
-
为什么要扩展?
array = array.map { "yo " + $0 } -
确实如此;我对 Extensions 中的突变产生了兴趣。另外,就此而言,我不确定
extension Sequence where Iterator.Element == String是否真的是当今最好的定义,对于[String]上的扩展名 -
感谢@LeoDabus,让我闭嘴。真的你应该把它作为一个答案来声明这些点......对未来的读者也很有用
-
你的代码太荒谬了。更改
s不会改变s来自的数组/序列的任何内容。s是副本! -
老兄!荒谬的代码是来这里的原因! :)
标签: ios swift3 extension-methods