関数をマスターする (2/6)
作成:2014-08-02 10:03
更新:2014-08-02 10:03
更新:2014-08-02 10:03
■引数の外部名について
引数は、仮引数となる変数名の他に外部名を持つことができます。これはこんな具合に記述します。
この外部名というのは、その関数を呼び出すときに引数に名前を指定するのに使うものです。これは、実際のサンプルを見ればわかるでしょう。
下のリスト欄に、簡単な関数の利用例を挙げておきます。taxは、価格と税率を引数に指定して呼び出すと、税込価格を計算して返す関数です。ここでは、以下のように引数部分を定義していますね。
複数の引数を持つ関数の場合、どの引数がどういう役割を果たすものか見た目にはわかりません。その関数のリファレンスなどで調べて確認して呼び出さないといけなかったりします。が、外部名を用意すれば、1つ1つの引数の役割が一目でわかります。こうすることで関数呼び出しに関連するバグをなくすことができます。外部名を使わない場合、関数の呼び出しはこうなりますね。
●ショートハンドについて
外部名が重要なのはわかった。けれどいちいち外部名と変数名をと2つも名前を書かないといけないのは面倒だ。そういう人も多いでしょう。その場合は、変数名をそのまま外部名として利用できるようにすることもできます。例えば、サンプルのtax関数ならこう書くのです。
(外部名 変数名 : タイプ)
この外部名というのは、その関数を呼び出すときに引数に名前を指定するのに使うものです。これは、実際のサンプルを見ればわかるでしょう。
下のリスト欄に、簡単な関数の利用例を挙げておきます。taxは、価格と税率を引数に指定して呼び出すと、税込価格を計算して返す関数です。ここでは、以下のように引数部分を定義していますね。
tax(price p:Int, rate r:Double)引数名はpとrです。関数の内部ではこれらの変数を使って計算をしています。では、これを呼び出している部分を見てみましょう。このように書かれていますね。
tax(price:10000, rate:0.08)外部名であるpriceとrateを指定して値を記述しています。こうすれば、それぞれの引数の役割は一目瞭然です。
複数の引数を持つ関数の場合、どの引数がどういう役割を果たすものか見た目にはわかりません。その関数のリファレンスなどで調べて確認して呼び出さないといけなかったりします。が、外部名を用意すれば、1つ1つの引数の役割が一目でわかります。こうすることで関数呼び出しに関連するバグをなくすことができます。外部名を使わない場合、関数の呼び出しはこうなりますね。
tax(10000, 0.08)この書き方だとコードを書いた本人以外にはどういうことをしているのかわかりません。外部名は、コードをよりわかりやすくする上で必須の機能といえるでしょう。
●ショートハンドについて
外部名が重要なのはわかった。けれどいちいち外部名と変数名をと2つも名前を書かないといけないのは面倒だ。そういう人も多いでしょう。その場合は、変数名をそのまま外部名として利用できるようにすることもできます。例えば、サンプルのtax関数ならこう書くのです。
func tax(#price:Int, #rate:Double) -> Int {引数の変数名に#がついていますね。これはショートハンドと呼ばれる設定です。これにより、変数名がそのまま外部名として使えるようになります。関数内で使う変数と外部名が同じですから、ソースコードもすっきりし読みやすくなりますね!
return Int(Double(price) * (1.0 + rate))
}
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
func tax(price p:Int, rate r:Double) -> Int { return Int(Double(p) * (1.0 + r)) } var res:Int = tax(price:10000, rate:0.08) ※ショートハンドの場合 func tax(#price:Int, #rate:Double) -> Int { return Int(Double(price) * (1.0 + rate)) }
※関連コンテンツ