map、filter、reduceなどの高階関数の内部実装をすばやく探しています。
アップルのドキュメントによると。
@inlinable public func map(_ transform:(Element)throws-> T)rethrows-> [T]
指定されたクロージャをシーケンスの要素にマッピングした結果を含む配列を返します。
たとえば;
var arr = [1,2,3,4,5]
print(arr.map({$0*5}))
出力は
[5,10,15,20,25];
または
print(arr.map({String($0)}))
ここで計算が基本的にどのように機能するか、または高階が内部的にどのように機能するかを知りたいだけです。ここで私を助けてくれませんか、値をどうするか(乗算または文字列への変換)のようにここでマップがどのように機能するか。
このようなカスタムマップを作成できます。シーケンスの下で、独自の高階関数を作成します。
extension Sequence {
public func customMap2<T>(
_ transform: (Element) -> T
) -> [T] {
var result = [T]()
for item in self {
result.append(transform(item))
}
return result
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加