Tcl-基本構文
Tclの習得は非常に簡単なので、最初のTclプログラムの作成を始めましょう。
最初のTclプログラム
簡単なTclプログラムを書いてみましょう。すべてのTclファイルの拡張子は.tclです。したがって、次のソースコードをtest.tclファイルに入れます。
#!/usr/bin/tclsh
puts "Hello, World!"
Tcl環境が正しくセットアップされていると仮定します。ファイルのディレクトリに切り替えてからプログラムを実行し、−を使ってプログラムを実行してみましょう。
$ tclsh test.tcl
次の出力が得られます-
Hello, World!
Tclプログラムの基本構造を見てみましょう。これにより、Tcl言語の基本的な構成要素を簡単に理解できるようになります。Tclでは、改行またはセミコロンを使用して、前のコード行を終了します。ただし、各コマンドに改行を使用している場合は、セミコロンは必要ありません。
コメント
コメントはTclプログラムのテキストを助けるようなもので、インタプリタはそれらを無視します。コメントは、最初にhash _(#)記号を使用して書き込むことができます。
#!/usr/bin/tclsh
# my first program in Tcl
puts "Hello World!"
上記のコードを実行すると、次の結果が得られます。
Hello World!
複数行またはブロックコメントは、条件「0」で「if」を使用して書き込まれます。以下に例を示します。
#!/usr/bin/tclsh
if 0 {
my first program in Tcl program
Its very simple
}
puts "Hello World!"
上記のコードを実行すると、次の結果が得られます。
Hello World!
インラインコメントは;#を使用します。以下に例を示します。
#!/usr/bin/tclsh
puts "Hello World!" ;# my first print in Tcl program
上記のコードを実行すると、次の結果が得られます。
Hello World!
識別子
Tcl識別子は、変数、関数、またはその他のユーザー定義項目を識別するために使用される名前です。識別子は、文字AからZまたはaからzまたはアンダースコア(_)で始まり、その後に0個以上の文字、アンダースコア、ドル($)、および数字(0から9)が続きます。
Tclでは、識別子内に@や%などの句読文字を使用できません。Tclはcase sensitive_言語。したがって、Manpowerとmanpowerは、Tclの2つの異なる識別子です。受け入れ可能な識別子の例をいくつか示します-
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
予約語
次のリストは、Tclで予約されている単語のいくつかを示しています。これらの予約語は、定数や変数、またはその他の識別子名として使用することはできません。
後 | 追加 | アレイ | auto_execok |
auto_import | auto_load | auto_load_index | auto_qualify |
バイナリ | Bgerror | ブレーク | キャッチ |
cd | 時計 | 閉じる | concat |
継続する | Dde | デフォルト | そうしないと |
elseif | エンコーディング | eof | エラー |
eval | Exec | 出口 | expr |
fblocked | Fconfigure | fcopy | ファイル |
fileevent | 流す | にとって | foreach |
フォーマット | 取得 | グロブ | グローバル |
歴史 | 場合 | 情報 | interp |
参加する | ラップエンド | lindex | linsert |
リスト | 長さ | 負荷 | lrange |
lreplace | Lsearch | lsort | 名前空間 |
開いた | パッケージ | pid | pkg_mkIndex |
proc | プット | pwd | 読んだ |
正規表現 | Regsub | 名前を変更 | 資源 |
戻る | スキャン | 求める | セットする |
ソケット | ソース | スプリット | ストリング |
subst | スイッチ | tclLog | 教えて |
時間 | 痕跡 | わからない | 未設定 |
更新 | アップレベル | upvar | 変数 |
vwait | 一方 |
Tclの空白
おそらくコメント付きの空白のみを含む行は、 blank line、およびTclインタプリタはそれを完全に無視します。
空白は、空白、タブ、改行文字、およびコメントを説明するためにTclで使用される用語です。空白は、ステートメントの一部を別の部分から分離し、インタプリタが、puts、ends、次の要素など、ステートメント内の1つの要素が始まる場所を識別できるようにします。したがって、次のステートメントでは-
#!/usr/bin/tclsh
puts "Hello World!"
「puts」と「HelloWorld!」の間には、少なくとも1つの空白文字(通常はスペース)が必要です。通訳がそれらを区別できるようにするため。一方、次のステートメントでは-
#!/usr/bin/tclsh
puts [expr 3 + 2] ;# print sum of the 3 and 2
上記のコードを実行すると、次の結果が得られます。
5
3と+の間、または+と2の間には空白文字は必要ありません。ただし、読みやすくするために必要な場合は、自由に含めることができます。