.maps()や.filter()のような高階関数がSwiftでどのように機能するか

Vikash Sinha

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

ここで計算が基本的にどのように機能するか、または高階が内部的にどのように機能するかを知りたいだけです。ここで私を助けてくれませんか、値をどうするか(乗算または文字列への変換)のようにここでマップがどのように機能するか。

Roshan sinha

このようなカスタムマップを作成できます。シーケンスの下で、独自の高階関数を作成します。

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]

編集
0

コメントを追加

0

関連記事

.maps()や.filter()のようなカスタム高階関数を作成する方法はSwiftで機能します

`map()`や `reduce()`のような高階関数はどのようにデータを受け取りますか?

mypyを使用したマップやタイピングなどの高階関数で辞書の `get`メソッドをどのように使用しますか?

sumや.apply(list)のようにgroupbyの後に異なる列に異なる関数を適用するにはどうすればよいですか?(Python)

Angularの「ngFor」式で「filter」や「map」などの配列関数が機能しないのはなぜですか?

RingやYesodのような純粋に機能するWebサーバーはMVCではないことをどのように説明しますか?

Actix-web や Bevy のように一見可変関数関数はどのように機能しますか?

ウィキや他のウェブサイトのようなUnityDash検索機能を無効にするにはどうすればよいですか?

typescriptが知らない関数について文句を言うのをやめるにはどうすればよいですか?

select()やpoll()などのシステムコールは、内部ではどのように機能しますか?

Windows 7で不要な機能や追加機能を削除するにはどうすればよいですか?

PRIやAIなどの特殊な機能をMSSQLのテーブルに追加するにはどうすればよいですか?

いいえの階乗を見つけます。それはうまく機能していますが、なぜ56,89,77やその他のいくつかの数値に対して階乗0を与えているのか理解できません

どのようにJava用Kotlinの静的変数や関数を作るのですか?

Firebaseの機能をすばやくテストするにはどうすればよいですか

<や> =などの関数を後で評価するための値としてCLIPSに保存するにはどうすればよいですか?

静的な高さや幅を指定せずにScrollViewerを機能させるにはどうすればよいですか?

Scalaで高階関数はどのように機能しますか?

HaskellやClojureのような関数型プログラミング言語で関数はどのように編成されていますか?

TypeORMやSequelizeなどのORMは実際にどのように機能しますか?

%% aや%1などの変数で遅延展開を使用するにはどうすればよいですか?

setcapやgetcapなどのLinux機能をインストールするにはどうすればよいですか?

ループや条件文なしで1から1000まで出力するCコードはどのように機能しますか?

Reactクラスの関数や値をメモ化するにはどうすればよいですか?

Reactクラスの関数や値をメモ化するにはどうすればよいですか?

splitやstringtokenizerなどの関数を使用せずにJavaで文字列を分離するにはどうすればよいですか?

Pythonのクラスや関数のように、この構築を簡単にするにはどうすればよいですか?

yticsの桁数を増やすようにgnuplotに指示するにはどうすればよいですか?

関数が実行されるたびに数を増やすにはどうすればよいですか?

TOP 一覧

  1. 1

    Ansibleで複数行のシェルスクリプトを実行する方法

  2. 2

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  3. 3

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  4. 4

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  5. 5

    Python / SciPyのピーク検出アルゴリズム

  6. 6

    ZScalerと証明書の問題により、Dockerを使用できません

  7. 7

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  8. 8

    Reactでclsxを使用する方法

  9. 9

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  10. 10

    python-pptxを使用してpptのすべての側面の特定のテキストを置き換える

  11. 11

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  12. 12

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  13. 13

    Railsで宝石のレイアウトを使用するにはどうすればよいですか?

  14. 14

    初期化時にextern / static変数のタイプを指定する必要があるのはなぜですか?

  15. 15

    PyTesseractを使用した背景色のため、スクリーンショットからテキストを読み取ることができません

  16. 16

    Web Bluetooth APIは、近くの利用可能なすべてのデバイスのリストを取得します

  17. 17

    二次導関数を数値計算するときの大きな誤差

  18. 18

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  19. 19

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  20. 20

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  21. 21

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

ホットタグ

アーカイブ