0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Swiftでクロージャーを学ぶ

Posted at

こんにちわ

今回はswiftでクロージャーについて学んだので、備忘録としてこの記事に載せていこうと思います!

#クロージャーとは
クロージャーとは、文の中に直接埋め込む命令の塊を作ることができる機能です。

基本の形は以下の通りです。

exapmle.swift
//基本的な形
{(引数名: ) -> 戻り値の型 in
    
}

//実際例1
var Triangle = {(length: Int) -> Int in
    return length * length / 2
}

Triangle(4) //8

//実際例2

var Square = {(length: Int) -> Int in
    var width =  length

    return width * 5
}

Square(4)//20

このように使うことができます。

また、一文の場合はreturnを省略することもできます。

example.swift
//returnの省略
var Square = {(length: Int) -> Int in
    length * length
}

Square(4)//16

##クロージャーのメリットとは

私はクロージャーを学び始めたてなのでそんなに詳しくはないのですが。

コードが見やすくなることが1番のメリットだと考えました。

まず関数を使った処理を見ていきましょう。

example.swift
//関数を使った場合
func Calculation(NumOne:Int, NumTwo: Int, SumNumber:(Int,Int) -> Int) -> Int{
    return SumNumber(NumOne,NumTwo)
}

func add(NumOne:Int,NumTwo:Int) -> Int {
    return NumOne + NumTwo
}

print(Calculation(NumOne:3, NumTwo:4, SumNumber:add))

これにクロージャーを使うと以下のようになります。

exapmle.swift

func Calculation(NumOne:Int, NumTwo: Int, SumNumber:(Int,Int) -> Int) -> Int{
    return SumNumber(NumOne,NumTwo)
}

print(Calculation(NumOne:3, NumTwo:4, SumNumber:{(a:Int,b:Int) -> Int in a+b}))

また、型を省略することができます。

example.swift
func Calculation(NumOne:Int, NumTwo: Int, SumNumber:(Int,Int) -> Int) -> Int{
    return SumNumber(NumOne,NumTwo)
}

print(Calculation(NumOne:3, NumTwo:4, SumNumber:{(a,b) in a+b}))

こっちの方がスッキリしてるかもですね。

#トレイリングクロージャーとは

トレイリングクロージャーは、関数の最後の引数がクロージャーの場合、カッコの外にクロージャーを記述することができる方法です。

以下のコードを見てください。

example.swift
func NamePrint(name: String, closure: (String)->Void) {
    closure("私は\(name)です")
}

//トレイリングクロージャーなし
NamePrint(name:"naoki",closure:{ string in print(string) })

//トレイリングクロージャーあり
NamePrint(name:"naoki") { string in print(string)}


メリットとしては、コードの可読性が上がり、見やすくなる事です。

#まとめ
クロージャーはコードの可読性を上げるために使う。。。。。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?