Swift

Swift:クロージャの基礎概念を簡単にメモるよ〜


Swiftを勉強していて、クロージャという言葉が出てきました。

クロージャってなんだろ?

クロージャ

くろーじゃ

closure!!

 

closure:閉鎖

。。。なるほど、

何かを閉じ込めているのか!

 

言葉の意味を調べるとなんとなくわかった気がしてきます。

 

最近『Swift実践入門 直感的な文法と安全性を兼ね揃えた言語』

を読みました。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Swift実践入門 [ 石川洋資 ]
価格:3456円(税込、送料無料) (2017/3/15時点)

 

 

そこには、クロージャは特殊なものではなくとても広い概念であるとの旨の内容が記されていました。

なんと関数もクロージャであるらしいのです。

 

関数の基本的な構造はこんな感じですよね。

ここの{}の中には様々な記述がされ、{}の中の全ての記述はその関数の一部です。

 

この{}こそがクロージャの正体なのではないか?

{}という大きなくくり

{}で様々な記述をくくり、一つにまとめる文法を総じて『クロージャ』と呼ぶのです。

よって関数もクロージャに入るのです。

 

『関数も』

ということは当然、関数以外の使い方もあります。

 

なんと、定数に代入したりできるのです!!

例を挙げてみます。

定数aaaにクロージャを代入してみました。

String型の引数『x』に”ファイト!”を入れています。

すごくシンプルですが、イメージはしやすいのではないでしょうか。

 

もう少し別の書き方を紹介します。

変数bbbにクロージャを入れ込むことを宣言して、

あとで実際に入れ込んでいます。

こっちの方が少し難しいですよね。

 

さらに引数や戻り値を省力した書き方を紹介します。

変数を宣言するときに引数の型や戻り値の型は定義できているので、

実際にクロージャを代入するときには、記述する必要はありませんね!(時と場合によりますが・・・)

 

以上、

今回はクロージャの紹介でした


コメントを残す

*