## Tcl9.0.3/Tk9.0.3 Documentation > Tcl Commands > set

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

### NAME

set — 変数の読み書き Read and write variables

### 構文 SYNOPSIS

set varName ?value?

### 説明 DESCRIPTION

変数varName の値を返す｡もし value が指定されていると､varName の値を value に設定し､未だ変数が実在しないと新しく生成し､その値を返す｡もし varName が左括弧を含み且つ右括弧で終っていると､配列要素を参照している: 初めの左括弧の前の文字は配列の名前で､括弧の間の文字は配列の内部の索引である｡それ以外の varName は単純変数を参照している｡ Returns the value of variable varName. If value is specified, then set the value of varName to value, creating a new variable if one does not already exist, and return its value. If varName contains an open parenthesis and ends with a close parenthesis, then it refers to an array element: the characters before the first open parenthesis are the name of the array, and the characters between the parentheses are the index within the array. Otherwise varName refers to a scalar variable.

もし varName が名前空間修飾子を含んでいるか(配列要素を参照している場合は配列名内に)､又は､もし､ varName が修飾されていないが(如何なる名前空間の名前も含んでいない)どの手続函数も活動していないと､ varName は取扱説明書の namespace 内の NAME RESOLUTION の頁に記載した規則に従って決定された名前空間の変数を参照する｡ If varName includes namespace qualifiers (in the array name if it refers to an array element), or if varName is unqualified (does not include the names of any containing namespaces) but no procedure is active, varName refers to a namespace variable resolved according to the rules described under NAME RESOLUTION in the namespace manual page.

もし､手続函数が活動していて､ varName が修飾されていないと､ varName が global か variable か upvar 命令のうちの一つで違って決定される様に宣言されてない限り､ varName は媒介変数か手続函数の局所変数を参照している｡ If a procedure is active and varName is unqualified, then varName refers to a parameter or local variable of the procedure, unless varName was declared to resolve differently through one of the global, variable or upvar commands.

### 用例 EXAMPLES

乱数を r に保存する: Store a random number in the variable r:

    set r [expr {rand()}]

短い伝言文を配列要素に保存する: Store a short message in an array element:

    set anAry(msg) "Hello, World!"

短い伝言文を変数で指定した配列要素に保存する: Store a short message in an array element specified by a variable:

    set elemName "msg"
    set anAry($elemName) "Hello, World!"

vbl に名前が保存されている変数から､変数 out に値を複写する(註意すべきは､実務では､間接参照を行うより配列を使う方が大概は易しい): Copy a value into the variable out from a variable whose name is stored in the vbl (note that it is often easier to use arrays in practice instead of doing double-dereferencing):

    set in0 "small random"
    set in1 "large random"
    set vbl in[expr {rand() >= 0.5}]
    set out [set $vbl]

### SEE ALSO

expr, global, namespace, proc, trace, unset, upvar, variable

### KEYWORDS

read, write, variable
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.