はRubyスクリプトです:それは名前discarded_rows
と(グローバル)変数を宣言します。ルビのグローバル変数はどのようにグローバルになっていますか?ここ
discarded_rows=-1
def foobar(line)
if line.match('records discarded: *(\d+)') then
discarded_rows=$1;
puts('yepp, I have found: ' + discarded_rows);
end;
end
foobar('records successful: 99 ');
foobar('records discarded: 2 ');
foobar('records unknown: 8 ');
if discarded_rows != 2 then
puts("discarded_rows: #{discarded_rows}");
end
そして、ここでは、私はそれがないと考えているものです。次に、渡された引数line
が "discarded * \ d"と一致するかどうかを調べる関数foobar
を宣言します。存在する場合は、廃棄されたレコードの数を(グローバルと思われるもの)変数discarded_rows
に割り当てます。一致する場合は、一致するかどうかを確認するために「yepp ....」と表示されます( )。
関数が呼び出され、1つの文字列が一致する必要があります。
discarded_rows
が2に等しくない場合は、それに応じた値が出力されます。
そしてここで、スクリプトの出力です:だから
yepp, I have found: 2
discarded_rows: -1
は、明らかに、マッチが働いていた、と明らかに、discarded_rows
は真にグローバルではありません。これは正しいのですか、何か見落としていますか?
はい、あなたは正しいと思います...そして、私は明らかにそれを覆しました。 –