awk関数パラメータ

awk関数パラメータ

gawk関数パラメータの使い方を理解できません。通常、パラメーターは関数のローカル変数を定義します。

しかし、パラメータを関数が使用できる入力として使用できますか?

使い方を見た後、return実際に呼び出して値を返します。

val=myfunc()

グローバル変数に引き続きアクセスできる場合は、グローバル値を入力パラメータとして関数に渡すことにどのような利点がありますか?

ベストアンサー1

あなたの質問は間違った前提に基づいています。

通常、パラメーターは関数のローカル変数を定義します。

習慣。通常、引数は関数に渡される値の変数名を定義します。

awk地域的にスコープ変数を宣言する機能はありません。ただし、すべての関数パラメータはオプションであるため、関数内でローカルに使用されることに加えて、他の目的のない変数で関数パラメータのリストをオーバーロードすることは許容される慣行と見なされます。

したがって、あなたの質問に対する答えは「はい」です。変数を使用して値を関数に渡すことができます。

例えば、

awk '
    function factorial(n) { return n>1 ? n*factorial(n-1) : 1 }
    BEGIN { print factorial(5) }
'

ここで、関数は毎回異なる値(最初の5つ、その後は値4、3、2の減少)で自分自身を呼び出します。このためにグローバル変数を使用することは非常に難しいでしょう。

おすすめ記事