2012-03-01 14 views

答えて

3

あなたは

namespace eval ::65FGA { 

} 

ビットことを意味しますか?

This commandは、名前空間「65FGA」を作成した後、evalは空の文字列(空の文字列)を作成します。その結果、前記ネームスペースが作成されるが、それにはまだ何も含まれていない。

このコードでは、議論中のコマンド呼び出しを削除することができ、何も影響しません。したがって、ほとんどの場合、パッケージが上記の名前空間を作成していることを明示的に説明する目的で使用されます(これには、1つでproc edureが格納されます)。

更新日:偽のステートメント(Eric Melskiのおかげで)を突きつけます。名前空間は、実際には(procまたはsetコマンドを使用して)何かを作成しようとする前に存在していなければなりません。

+0

namespace eval ::my_namespace {} proc ::my_namespace::procname {} {...} 

あなたは「あなたがコマンド呼び出しを削除することができ、それは何も影響しません」とはどういう意味ですか?表示されたコードは、最初の空の[namespace eval]がなければ、名前空間を作成できません。名前空間が存在しない場合、その名前空間にprocを作成しようとすると、Tclはエラーをスローします。 –

+0

@EricMelski、ありがとう、あなたは正しいです。私は私の答えを更新しました。 Niteshへの私の謝罪。 – kostix

5

それはスタイルだけの問題である可能性があります

namespace eval ::my_namespace { 
    proc procname {} {...} 
} 
+1

両方のスニペットで 'eval'サブコマンドがありません – kostix

+0

@kostix、ありがとう、ありがとう。 –

関連する問題