## Tcl8.6.17/Tk8.6.17 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 が修飾されていない場合､別途 global か variable か upvar 命令のうちの一つで varName が決定される様に宣言されてない限り､ 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.