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の減少)で自分自身を呼び出します。このためにグローバル変数を使用することは非常に難しいでしょう。