パッケージTEXを持っています。パッケージに空の中括弧を含む名前空間が使用されている理由
package require ABC
package provide TEX 1.0
namespace eval ::65FGA {
}
proc ::65FGA::runSuite {{setupFile ""} args} {
Proc body
proc body
}
空のかっこで名前空間が使用されている理由を私は得ていないのです。..
パッケージTEXを持っています。パッケージに空の中括弧を含む名前空間が使用されている理由
package require ABC
package provide TEX 1.0
namespace eval ::65FGA {
}
proc ::65FGA::runSuite {{setupFile ""} args} {
Proc body
proc body
}
空のかっこで名前空間が使用されている理由を私は得ていないのです。..
あなたは
namespace eval ::65FGA {
}
ビットことを意味しますか?
This commandは、名前空間「65FGA」を作成した後、eval
は空の文字列(空の文字列)を作成します。その結果、前記ネームスペースが作成されるが、それにはまだ何も含まれていない。
このコードでは、議論中のコマンド呼び出しを削除することができ、何も影響しません。したがって、ほとんどの場合、パッケージが上記の名前空間を作成していることを明示的に説明する目的で使用されます(これには、1つでproc
edureが格納されます)。
更新日:偽のステートメント(Eric Melskiのおかげで)を突きつけます。名前空間は、実際には(proc
またはset
コマンドを使用して)何かを作成しようとする前に存在していなければなりません。
それはスタイルだけの問題である可能性があります
namespace eval ::my_namespace {
proc procname {} {...}
}
両方のスニペットで 'eval'サブコマンドがありません – kostix
@kostix、ありがとう、ありがとう。 –
対
あなたは「あなたがコマンド呼び出しを削除することができ、それは何も影響しません」とはどういう意味ですか?表示されたコードは、最初の空の[namespace eval]がなければ、名前空間を作成できません。名前空間が存在しない場合、その名前空間にprocを作成しようとすると、Tclはエラーをスローします。 –
@EricMelski、ありがとう、あなたは正しいです。私は私の答えを更新しました。 Niteshへの私の謝罪。 – kostix