2010年7月31日土曜日

return = 関数の呼び出し元に戻る - AWK

AWKのパターンと制御文
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ○awk
関数の呼び出し元に戻ります。

**** 書式
--------
return [戻り値];
--------

o 戻り値 -- 関数の値になります。
   + 配列以外の値を指定します。
   + 不要な時は、省略する事も出来ます。


**** 使用例
--------
function f(a, b) {
  return (a * 10 + b);
}
BEGIN {
  print f(39, 3); # 表示は 393
}
--------

o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。


**** 機能
o 関数の呼び出し元に戻ります。
o 数値や文字列を返す事が出来ます。但し、配列を返す事は出来ませんでした。


**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3
o Mawk for Windows 1.3.3
o original = the one true awk(updated May 1, 2007)


==
関連ページ:
    ▼AWKのパターンと制御文▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > exit = 終了する
    next = 次行の処理に移る
    next file(= nextfile の古い書き方)
    +
    function = 関数を作る
    ローカル変数を使う

func = 関数を作る(非推奨。functionへ) - AWK

AWKのパターンと制御文
○Gawk on Windows ○Gawk ×mawk32 ×Mawk ○awk
関数を作ります。
なお、現在の規格では、function を使う事が推奨されています。

**** 書式
--------
func 関数名( [引数の列] ) { [内容] }
--------

o 以下、functionの内容と同じです。function の説明中に出てくる名前を、funcに置き換えてご覧下さい。


**** メモ
o 次の処理系(mawk系)では、この書き方はサポートされていませんでした。
   + mawk32 1.3.3
   + Mawk for Windows 1.3.3


**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3 -- 非対応
o Mawk for Windows 1.3.3 -- 非対応
o original = the one true awk(updated May 1, 2007)


==
関連ページ:
    ▼AWKのパターンと制御文▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > function = 関数を作る
    return = 関数の呼び出し元に戻る
    exit = 終了する

function = 関数を作る - AWK

AWKのパターンと制御文
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ○awk
関数を作ります。
o 部品化したい時は、「ローカル変数を使う」も合わせてどうぞ。

**** 書式
--------
function 関数名( [引数の列] ) { [内容] }
--------

o 関数名 -- 名前を付けます。
   + 最初の文字は、半角アルファベット、もしくは半角のアンダースコア「_」
   + 2文字目以降は、半角アルファベット、半角数字、もしくは半角のアンダースコア「_」
o 引数の列 -- カンマで区切ります。
   + 引数の名前の付け方は、関数名と同じです。
   + functionで定義する引数は、実際に使う数よりも多く指定する事も出来ます。
   + 不要な時は、省略する事も出来ます。
o 内容 -- 実行したい文を並べます。
   + 不要な時は、省略する事も出来ます。


**** 使用例
--------
function f(a, b) {
  return (a + b);
}
BEGIN {
  print f(390, 3); # 表示は 393
}
--------

o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。


**** 機能
o 関数を作ります。
o 引数は、配列以外は値渡しです。
   + 配列以外は、値渡しになります。
      + 関数内で引数の値を変更しても、関数の呼び出し元に影響を与えません。
   + 配列の場合は、参照渡しになります。
      + 関数内で配列の要素の値を変更すると、関数の呼び出し元にも影響を与えます。
o その他、途中で終了したい時や、配列を使わずに値を1つ戻したい時は、return を使います。


**** メモ
o 作った関数は、再帰呼び出しも可能です。
   + 少なくとも、自分を100回呼び出す事は出来ました。
o AWKの関数定義では、引数を余分に書いて、局所変数として使う技があります。


**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3
o Mawk for Windows 1.3.3
o original = the one true awk(updated May 1, 2007)


==
関連ページ:
    ▼AWKのパターンと制御文▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > return = 関数の呼び出し元に戻る
    exit = 終了する
    next = 次行の処理に移る
    +
    ローカル変数を使う
    func (= function の古い書き方)
(2010年9月15日追加。再帰呼び出し可能と明記)