日本語の名前 [PowerShell]
PowerShell で変数名や関数名に日本語は使えるのでしょうか。
どうやら使えるようです。
実際に使おうとは思いませんが。。。
では、いわゆる全角スペース(和字間隔)はどう扱われるのでしょう、
という重箱の隅をつつくような話を少し。
まず、関数名について確かめてみます。
というスクリプト(bの後ろとcとdの間は全角スペース)を実行すると
行頭でなければ全角スペースも関数名の一部として使えます。
空白文字とは解釈されておらず、4番目の例でも
c と d が別のトークンと扱われていないようです。
では変数名ではどうでしょう。
こちらは空白文字として扱われるので
4番目のように空白を含む変数名の場合は{}で囲む必要があります。
囲まなければ
とエラーになってしまいます。
関数名の場合とは解釈のされ方が違うのですね。
ちなみに ${ } と ${ } は別の変数となります。
日本語の名前を使おうとして
間違えて全角スペースが入ってしまうと、
見た目に見分けがつきにくいエディタの場合
わけがわからなくなることでしょう・・・(笑)
$あ = 123
PS > Get-Variable あ
Name Value
---- -----
あ 123
どうやら使えるようです。
実際に使おうとは思いませんが。。。
では、いわゆる全角スペース(和字間隔)はどう扱われるのでしょう、
という重箱の隅をつつくような話を少し。
まず、関数名について確かめてみます。
function a { $myInvocation.MyCommand }
function あ { $myInvocation.MyCommand }
function b { $myInvocation.MyCommand }
function c d { $myInvocation.MyCommand }
a
あ
b
c d
というスクリプト(bの後ろとcとdの間は全角スペース)を実行すると
CommandType Name Definition
----------- ---- ----------
Function a $myInvocation.MyCommand
Function あ $myInvocation.MyCommand
Function b $myInvocation.MyCommand
Function c d $myInvocation.MyCommand
行頭でなければ全角スペースも関数名の一部として使えます。
空白文字とは解釈されておらず、4番目の例でも
c と d が別のトークンと扱われていないようです。
では変数名ではどうでしょう。
$a = 'abc'
$あ = 'あいう'
$b = 'bcd'
${c d} = 'cde'
こちらは空白文字として扱われるので
4番目のように空白を含む変数名の場合は{}で囲む必要があります。
囲まなければ
Unexpected token 'd' in expression or statement.
とエラーになってしまいます。
関数名の場合とは解釈のされ方が違うのですね。
ちなみに ${ } と ${ } は別の変数となります。
日本語の名前を使おうとして
間違えて全角スペースが入ってしまうと、
見た目に見分けがつきにくいエディタの場合
わけがわからなくなることでしょう・・・(笑)
タグ:powershell 日本語