特定の式を評価しようとしています。私はコマンドで "pqr" & & "xyz"を持っています。コマンドを評価するとき、それはエラーを返す:close-quoteの後の余分な文字。 私は、二重引用符の後に& &を解析することができないと思う。これが理由なら、どうすれば二重引用符を扱わなければならないのですか?& &?TCLエラー:クローズクォート後の余分な文字
答えて
あなたには十分な情報がありません。
expr "pqr"&& "xyz"
「クローズ引用符の後に余分な文字」というエラーメッセージを与えて行います。
野生の推測では、あなたがこのような何かを書いていたということです。これは、インタプリタがTcl言語の規則に従ってコマンドを解析しようとするためであり、これらの規則の1つは、二重引用符で始まる単語が一致する二重引用符で終わらなければならないということです。この場合、一致する二重引用符の後に2つの&
文字があります。
は今、(二重引用符とアンパサンドの間のスペースを持つ)
expr "pqr" && "xyz"
は、どちらかは良いではありません。これは、インタープリターが、コマンドの引数を準備するときに構文的な機能を持つ文字を削除するためです。これは、引数expr
が文字列pqr && xyz
であることを意味します。 expr
コマンドが実行されると、その引数は、が Tclではない特別な表現言語の文字列として解釈しようとします。特に、ブール値ではないTcl文字列や関数の変数名は、中括弧または二重引用符で囲む必要があります(例:"pqr" && "xyz"
)。どうやってそれを手に入れますか?あなたはいつも引数をexpr
に括っています。そうです。
expr {"pqr" && "xyz"}
はexpr
が法的文字列"pqr" && "xyz"
を取得することを意味します。
は、しかしストリング"pqr" && "xyz"
は、そうexpr {"true" && "false"}
ように、&&
(論理AND)演算がブール値の文字列表現に等しい文字列以外の文字列に対して定義されていないため、まだ有効ではありませんもう一度私たちは立ち往生しています。あなたがしているように見えるものは意味をなさないからです。あなたがしていることを私たちに示すなら、私たちはあなたを助けることができるかもしれません。
*)です。まれな、熟練したレベル。
ドキュメント: expr、 Mathematical operators as Tcl commands、 Summary of Tcl language syntax
ブレースあなたの表現
に同じメカニズムを使用しexprコマンド(ひいては、コマンドfor
、if
、およびwhile
、それらの条件を評価する)は、引数から構成された式文字列を解釈します。式文字列の言語はTclのではないことに注意してください、しかしexpr
コマンドの式の評価に固有:言語は、多くの構文形式を共有しますが、expr
言語とプレフィックスの中置、オペレータベースの構造に根本的に異なっている、コマンドベースTclの構造。 Tclインタプリタをまかせ
- 二重置換、につながることができ
expr
に渡す前に引数を評価します。 - 反復コマンド(
for
、while
)無限ループにつながる、一定の値の条件の引数を取得。expr
が選択それらの一部を抑制することができるが(したがって、その副作用) - すべての置換が常に生じます。
したがって、ないはTclインタプリタによって評価されるブレース(エスケープ)文字列、唯一expr
通訳として表現文字列を提供するために、ほとんど常により良いです。
expr
の引き数を無効にすることは、引数評価がそれらを有効なものに変換する限り、無効な式ストリングであることが許されていますが、中括弧はそのまま有効でなければなりません(例えば、変数またはコマンドの置換は単純オペランド演算子や複雑な式ではありません)。それから - (10倍高速5)
ブレース表現文字列を使用してからのもう一つの利点は、通常、バイトコンパイラがより効率的なコードを生成することができるということです。
- 1. フォーム提出後の余分な文字
- 2. 余分な文字...?
- 3. TCLの文字列分割
- 4. 余分な文字クローズブレース
- 5. は、Mac上のsed 'pコマンドの後に余分な文字' を
- 6. Telerik報告バーコードの余分な文字スキャンした後
- 7. 余分な文字のXML PATH
- 8. Zend_Currency余分な文字を表示
- 9. TCL構文エラー
- 10. 二重スラッシュの後に余分な文字を含むURLのモディリライト
- 11. エラー:PHPパブリック関数での文書の最後に余分なコンテンツ
- 12. SASでマクロ変数の後に余分な文字を追加しますか?
- 13. TCL文字列concat
- 14. Greenplum gpload - 最後のエラー:最後の予想カラムの後の余分なデータ
- 15. 登録商標印字余分な文字
- 16. ノックアウト、余分なコンテナレスif文
- 17. 私はC文字列の最後に余分な文字を続けています
- 18. 2つの文字列の間に余分な文字を見つける
- 19. Java - 余分な入力を許容する文字列入力エラー
- 20. TCLの特殊文字\ X1
- 21. Tclの文字列エスケープ
- 22. SQLの文字列から余分な文字を削除する方法は?
- 23. JNIへの文字列が余分な文字を取得する
- 24. 文字列内の余分な空白文字を削除する
- 25. ウィキペディアのイメージURLの余分な文字は何ですか?
- 26. HBaseのKeyValue.getKey()は、次のHBaseコード余分な文字
- 27. 余分なもの取得するコンソールI/Oの文字
- 28. SQLクエリの削除、余分な行の文字列でCHAR(10)
- 29. セレン3.0.1のsendKeysメソッドの余分な文字
- 30. なぜsnprintf()は余分な文字を書きますか?
あなたはエラーになり、実際のコードを表示することができますか? "pqr"と "xyz"はブール値ではないので、ここに示した内容はあまり意味がありません。したがって、&&で結合することはできません。 –