So-net無料ブログ作成
検索選択
QLOOKアクセス解析

日本語の名前 [PowerShell]

PowerShell で変数名や関数名に日本語は使えるのでしょうか。
$あ = 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.

とエラーになってしまいます。

関数名の場合とは解釈のされ方が違うのですね。

ちなみに ${ }${ } は別の変数となります。

日本語の名前を使おうとして
間違えて全角スペースが入ってしまうと、
見た目に見分けがつきにくいエディタの場合
わけがわからなくなることでしょう・・・(笑)


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

メッセージを送る
人気ブログランキングへ
 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。