引数を変更したり、初期化処理を行ったりしてから、他の関数を呼び出す関数の事です
ラッピングする事に良く似ているので「ラッパー」と呼ぶようですが本当の所は良く分かりません
たとえばうちで紹介している「グラデーションフォント関数」をラッピングする場合、「#rrggbb」の形式を「R,G,B」としたり、「色名 or 値指定」とする事も可能なわけです(ちなみに「R,G,B」の場合16進数で指定した方が楽だったりします)、他にも「開始文字色、終了文字色をランダムに設定する」とするのもできます
さて、何故ラッピングをするかは上で、ほとんど書いてしまいましたが、実際問題として利点はどこにあるのでしょうか、例を挙げて書いていきましょう
- グラデーションフォント関数(以降「fncTextGradation」)
「fncTextGradation」は、おせいじにも使いやすいとは言えません
色の指定は「色名(REDとかBLUEなど)」で指定できた方がマシになるでしょう
手段としては「コードを全般的に書き直す」「色名から値へコンバートする関数を使ってその値を渡す」「やっぱりあきらめる」という方法があると思います
プログラミングが得意であれば、一番目の方法でも構わないのですが、ここは色名でも行けるように追加した方が便利かもしれません
手順を追って書いていきましょう
- 色名から値へのコンバート関数(以降「fncCnvColorNameTo」)を作る
使う色だけで構いません
時間があるのであれば、全部の色に対応するのもいいでしょう
- 「fncTextGradation」「fncCnvColorNameTo」を呼び出す関数(以降「fncTextGradation_CCnv」)を作る
「fncTextGradation_CCnv」の引数は「fncTextGradation」と同じですが、色の部分は色名か値のどちらかが入ります
「fncTextGradation_CCnv」の引数の色指定が「色名」なら「fncCnvColorNameTo」でコンバートして「fncTextGradation」に引き渡します
「fncTextGradation」の戻り値を「fncTextGradationCCV」に返せば、それで終了です
手順としてはこんな感じです
まあ、やっている事自体が対した事ではないので、書いてもそんなに難しい事ではありません