KOSEN{BLOG}について

関数の内部・外部引数について~Learn Swift for Beginners~

 

Swiftでは、関数の引数名は信じられないほど重要です.

なぜなら,引数には内部引数と外部引数( _ アンダーバー)が存在していて,それらを理解しないままドキュメントだったり他の人のプログラムをみようとすると訳のわからないことになってしまいます.

本記事では,下記の内容を解説します.

 

  • 普通の関数からの脱却方法
  • 内部・外部引数の実際の使い方
  • Swiftにおける _  (アンダーバー)をマスターする方法

 

hiro

私はSwiftを1年くらい勉強しています.Swiftを使ってmacOSのアプリケーションを作成中です.

その中で私がつまずいたところや自分で調べて理解したところなどを紹介していきます.

 

Swiftは進化を続けていてSwiftの前進であったObjective-Cから新しい考え方を取り入れて,_(アンダーバー)を使用して引数を記述しなくても良い書き方ができるようになりました.

今回はその書き方について優しく説明します.

 

普通の関数からの脱却方法

まず最初に普通の関数を宣言します.

MyPlayground_playground

この時点でわからないという方は,前回関数についての記事を書いているので参考にしてください.

関数の3つの定義 ~Learn Swift for Beginners~

この引数を実際に内部引数と外部引数を宣言して宣言してみます.

MyPlayground_playground-5551288

注意
引数を英語でパラメータといいます

実際のコードがこちら

func myFunc(parameter internalParameter: String){
    print(internalParameter)
}

 

このようにただの関数から初めに外部パラメーター(引数)を宣言後,内部引数を宣言します.

使い方

使い方は簡単で外部引数を呼び出す際に使うだけです.

func myFunc(parameter internalParameter: String){
    print(internalParameter)
}

myFunc(parameter: "hiro")

 

おめでとうございます!普通の関数からの脱却の成功です!

また,引数は複数の引数を宣言することも可能です.

func myFunc(name n: String, age a: Int){
    print("My name is \(n),\(a) years old.")
}

myFunc(name: "hiro", age: 21)

 

ルールのまとめ

重要
最初に外部引数を宣言した後内部引数を宣言

 

この1つのルールさえ覚えておけば大丈夫!!

内部引数と外部引数の使い方は以上です.

実は,外部引数は関数を呼び出したときだけ使用されて内部引数に値が渡されます.

つまり外部引数は関数の中に入ることはできません.関数の門番としてしか存在価値がないのです.(かわいそうに..🤦🏻‍♂️🤦🏻‍♂️)

逆にいうと,普通の関数は,関数の中も外も自由に行き来することができるといった引数になっています.

ここまでが内部・外部引数の導入とルールの説明でした.

 

内部・外部引数の実際の使い方

 

これだけみてもメリットが感じられていないあなたに!

 

hiro

実際にドキュメントだったり,実際のアプリ開発でよく使われている方法をみていきましょう.

Swift  _ アンダーバーの使い方

 

関数を宣言する際に1つしか引数が無い時など,引数名を省略できる場合があります.

例えば,名前を取得するprintName関数を宣言したとします.

func printName(name:String){
	
  print("My name is \(name)")
  
}

printName(name:"hiro")
//My name is hiro

printNameという関数名を見れば,名前を引数名に入れることは想像がつきます.

この時内部・外部引数を使用します.

省略の方法

省略の方法は外部引数に _を使用するだけです.

重要
省略したいときは _ (アンダーバー)を使用する!

外部引数は内部引数より先に宣言するのでこのようになります.

func printName(_ name:String){
	
  print("My name is \(name)")
  
}

使用した結果

printName("hiro")
//My name is hiro

引数名をまったく使用せずに関数を呼び出すことができました.

 

また,内部・外部引数を使用することで,print→名前を→”hiro”

このように読みやすくなったと思います.

 

メモ

最初は内部・外部引数を使用せずに定義をしておいてあとで使うのも一つの手です.

 

Swiftにおける _  (アンダーバー)をマスターする方法

外部引数は、関数を呼び出すときに使用して,

内部引数名は、引数の値を使用するときに使用します.

「この関数は引数がひとつだから省略しても大丈夫だな」と思ったら必要に応じて後から外部引数 _ (アンダーバー)を追加してみてください!

引数名を使わず代わりに値を渡すだけで関数を呼び出すことができるとコードの可読性が上がります!

 

さて次は,Closureについて学んでみてください!

0から学ぶClosure ~Learn Swift for Beginners~

 

コメントを残す

メールアドレスが公開されることはありません。