VALUE

VALUE 函数返回 name (通常以动态方式构造) 所表示的符号的值,并 (可选) 为其分配新值。

读取语法图跳过可视语法图 VALUE( 名称 ,新值,选择器 )

缺省情况下, VALUE 是指当前 REXX 变量环境,但是,如果要指定 selector ,那么值必须是 RLS。 如果指定了 RLS 的选择器,那么操作的变量是 REXX 列表系统 (RLS) 变量,而不是 REXX 变量。 如果使用该函数来引用 REXX 变量,那么 name 必须是有效的 REXX 符号。 (您可以使用 SYMBOL 函数来确认这一点。) name 中的小写字符将转换为大写。 在可能的情况下,尽量使用复合名称中的替代词 (参见分配和符号 )。

如果指定 newvalue,那么指定的变量将被赋予此新值。 这不会影响返回的结果; 即,函数返回 name 的值,就像在新赋值之前一样。

示例

/* After: Drop A3; A33=7; K=3; fred='K'; list.5='Hi' */
VALUE('a'k)     ->  'A3' /* looks up A3     */
VALUE('a'k||k)  ->  '7'  /* looks up A33    */
VALUE('fred')   ->  'K'  /* looks up FRED   */
VALUE(fred)     ->  '3'  /* looks up K      */
VALUE(fred,5)   ->  '3'  /* looks up K and  */
                         /* then sets K=5   */
VALUE(fred)     ->  '5'  /* looks up K      */
VALUE('LIST.'k) ->  'Hi' /* looks up LIST.5 */

以下示例返回已存储在 RLS 变量中的 REXX 变量李华明的 VALUE。

/* REXX EXEC - ASSIGN FIND VALUE OF FRED  */
FRED = 7
'RLS VARPUT FRED \USERS\userid\'
X = VALUE(FRED,,RLS)
SAY X
/* X now = 7                              */
注:
  1. 如果 VALUE 函数引用未初始化的 REXX 变量,那么将始终返回该变量的缺省值; 不会产生 NOVALUE 条件。 对 RLS 变量的引用从不引发 NOVALUE。
  2. 如果将 name 指定为单个文字串,并省略 newvalueselector,那么符号是常量,因此引号之间的字符串通常可以替换整个函数调用。 例如, fred=VALUE('k'); 与赋值 fred=k;相同,除非正在捕获 NOVALUE 条件。 查看条件和条件陷阱