Swift基本講座

クロージャの応用方法

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
配列のソートを例にとって、クロージャを使うことでソートの並び順を変えることができるという応用例を説明します。クロージャは関数とは違って関数呼び出しなどに直接書くことができますので、とてもシンプルにソートの内容を書き表すことができます。
講師:
04:35

字幕

このレッスンでは クロージャの応用例として 配列のソートについて 見ていきたいと思います まず こちらのプログラムを ご覧ください こちらのプログラムには array という 配列を1つ宣言して かなり値がバラバラな順に 並んでいる配列を用意しています 1 94 53 23  という風に 本当にバラバラな配列があります この配列の中身をソートしたいと思った時は Swift にはかなり便利な関数が 予め用意されています それが sorted という関数です この sorted に この配列を渡すだけで この配列を 小さいものから大きいものの順に 並べ替えてもらえます こういう便利な機能が用意されています ここで少し注意していただきたいのは 今は 小さい数から 大きくなる順に並んでいますが 大きい数から小さくなる順に 並び替えたい時には どうすればよいのか? ということです その時に便利に使うことができるのが クロージャです クロージャを使うために クロージャをもっと分かりやすい形にした 関数を1つ用意したいと思います どんな関数かというと compare という名前の関数です まず int 型を1つ もう1つ int 型を貰ってきて 最後に この first と second の 2つの int 型に対して これが 大きいもの 小さいものの順に 並んでいるかをチェックする関数を ここに宣言したいと思います 要するに first が second よりも大きければ 大きいもの順に並んでいるわけですから first > second なら OK です と この様に関数を書きます これで first と second を 比較する関数が書けたわけですが この関数のクロージャの部分 後ろの { (波括弧)の部分を利用して 上の方の sorted の関数と組み合わせて 配列を大きい方から小さい方に ソートすることができます 実際にやってみましょう array3 を次に作ります 利用するのは この sorted の関数なので array をこれに渡すと これ以上何も指定しなければ -4 1 23 という風に 小さいものから順に並んでいくのですが この array の後ろに 更に , (カンマ)を付けて ここに このクロージャの部分を渡します 但し この sorted に渡すクロージャには first と second の引数がありますので それをちゃんと書く必要があります そこで この first と second を int 型で貰って Bool 型を返すということを この { の後ろに書いて 更に その後ろに in を 付けることによって これがしっかりとクロージャとして 機能するようになります 実際に このクロージャを渡した後 どうなっているかを見ていただきますと この first と second を 大きい方と小さい方を比較する関数が 10 回繰り返し呼ばれた後 大きいものから小さいものに 順に 94 87 53 23 1 -4 と言う風に 並んでいます これで しっかりと大きいものから 小さいもの順のソートを行うことができました C 言語などで同じことを行おうとすると 上に書いてあるように 大きいものと小さいものを比較する compare という種類の関数を あらかじめ用意しておいて その関数とは別の所に このソートのための― 実行の文を書くということを しなければいけなかったのですが Swift ではクロージャが 用意されていますので このクロージャを使って ソートをしたい場所に 大きいものと小さいものの関係を 埋め込むことで どの様にソートするのかということを 指定することができます このレッスンでは ソートを例にとって クロージャの応用を説明しました

Swift基本講座

このコースでは、iOSやOS X用のアプリをとても簡単に開発することができるプログラミング言語Swiftについて解説します。if文やfor文などの制御命令の使い方から変数や定数、配列や辞書の使い方まで基本的なSwiftプログラミングの知識をPlayground上で説明します。Swiftプログラミングの知識を効率的に学ぶのに、このコースをぜひお役立てください。

2時間59分 (35 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2015年09月23日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。