回数を多めにとってまとめておきます。
変数のスコープというと、C言語とかJavaだと、
for文とかif文の「{ }」内外で変数のスコープが変わるので云々、
ということでコード作成時に注意する必要がありました。
C言語の例は、こちらのサイトをご覧ください。
PowerShellの場合は、上記のような通常の制御構文の内外で、
変数のスコープが変わることはありません。
したがって、たとえばforループ内で宣言した変数を、
ループの外から普通に使用できたりもします。
作成例(制御構文とローカル変数の関係確認スクリプト):
#変数を消しておく
Remove-Variable -Name a, b
[string]$a = "A"
if ( $true ) {
$a = "a"
$b = "b"
}
Write-Host ( '$a[{0}], $b[{1}]' -f $a, $b )
#出力 → $a[a], $b[b_inside_if]
for ( $counter = 0; $counter -lt 10; $counter++ ) {
$a += $counter.ToString()
$c += $counter.ToString()
}
Write-Host ( '$a[{0}], $c:{1}' -f $a, $c )
#出力 → $a[a0123456789], $c[0123456789]
では、PowerShellにおけるスコープとは何ぞや、という事ですが、
実はスクリプトブロックや関数の間で、
どの変数が見えて、どの変数が見えないか、
という事を表現するための概念のようですが…
これについては、次回以降のエントリーで書きます。
参考サイト:
P's Members : スコープってなに?
参考コマンド:
Get-Help about_Scope
修正履歴:
0 件のコメント:
コメントを投稿