タグ

tipsとargsに関するkiyo_hikoのブックマーク (2)

  • 引数を左から右へ受け流す - Qiita

    プログラムを書いていると、状況によっては、「もらった引数を使って別な関数・メソッドに処理を丸投げする」必要が出てくる場合があります。ここでは、そのような例を示してみます。 JavaScript…配列のようで配列でないもの JavaScriptの関数では、宣言した仮引数とは別に、argumentsという、すべての引数を詰め込んだ「配列のようなオブジェクト」1が渡されているので、これを使って別な関数をapplyすることで、すべての引数をそのまま渡せます(applyの引数は「配列のようなオブジェクト」で大丈夫です)。 なお、applyの第1引数は呼び出し先でthisになるオブジェクトです。ただの関数なら気にしなくて構いませんが、メソッドを呼ぶ際はきちんと設定しましょう。

    引数を左から右へ受け流す - Qiita
    kiyo_hiko
    kiyo_hiko 2015/10/29
    Perlでsub hoge { &fuga }的な業のRuby版
  • Excel VBA ParamArray 可変個引数の渡し方 - OKWAVE

    今回の条件で直接Concatenate2を呼び出した場合 MyArray()は3個の配列で渡されますが Fanc1経由で呼び出された場合のConcatenate2での MyArray()は1個の配列です この1個の配列の中身が配列で渡されます。 なので1個の配列引数を持つ共通的な関数で展開する形にするのが妥当かと ただ、ParamArrayは特殊な配列のようでそのまま他の関数に渡そうとするとエラーになるため別な配列に複写して渡さないと動作しませんでした ただ、共通関数の受取をParamArrayにするとエラーにならないので下記 の2通りの方法を考えました。 Function ComFunc(MyArray As Variant) As String Dim S As String Dim v As Variant Dim c As Variant For Each v In MyArray

    Excel VBA ParamArray 可変個引数の渡し方 - OKWAVE
    kiyo_hiko
    kiyo_hiko 2013/09/09
    可変長引数使えるのねsumとかmax作る。maxは0じゃなくてns(LBound(ns))から積む 「Public Function sum(ParamArray ns() As Variant)\nDim i As Long\nDim acc As Long\nacc = 0\nFor i = LBound(ns) To UBound(ns)\nDebug.Print acc\nacc = acc + ns(i)\nNext\nsum = acc\nEnd Function」
  • 1