Manpages

______________________________________________________________________________

NAME

proc - 建 立 一 个 Tcl 过 程

总 览 SYNOPSIS

proc name args body _________________________________________________________________

描 述 DESCRIPTION

proc 命 令 建 立 一 个 叫 做 name 的 新 的 Tcl 过 程 , 替 换 已 经 叫 这 个 名 字 的 任 何 现 存 的 命 令 或 过 程 。 当 调 用 这 个 新 命 令 的 时 候 , Tcl 解 释 器 将 执 行 body 的 内 容 。 通 常 , name 是 未 限 定 的 (unqualified)(不 包 括 任 何 包 含 (这 个 过 程 )的 名 字 空 间 的 名 字 ), 在 当 前 名 字 空 间 中 建 立 这 个 新 过 程 。 如 果 name 包 含 任 何 名 字 空 间 限 定 符 (qualifier), 则 在 指 定 的 名 字 空 间 中 建 立 这 个 过 程 。 Args 指 定 给 这 个 过 程 的 形 式 参 数 。 它 由 一 个 列 表 组 成 , 可 以 为 空 , 它 的 每 个 元 素 指 定 一 个 参 数 。 每 个 参 数 指 定 符 (specifier)也 可 以 是 有 一 个 或 两 个 字 段 (field)的 一 个 列 表 。 如 果 在 指 定 符 中 只 有 一 个 单 一 字 段 则 它 是 参 数 的 名 字 ; 如 果 有 两 个 字 段 , 则 第 一 个 是 参 数 名 而 第 二 个 是 它 的 缺 省 值 。 在 调 用 name 时 , 为 过 程 的 每 个 形 式 参 数 建 立 一 个 局 部 变 量 ; 它 的 值 将 是 在 调 用 命 令 中 相 应 的 (实 际 )参 数 的 值 或 这 个 参 数 的 缺 省 值 。 在 过 程 调 用 中 可 以 不 指 定 有 缺 省 值 的 参 数 。 但 是 , 必 须 有 足 够 的 实 际 参 数 给 所 有 没 有 缺 省 值 的 形 式 参 数 , 并 且 没 有 多 余 的 实 际 参 数 。 有 一 种 特 殊 情 况 可 以 允 许 过 程 有 可 变 数 目 的 参 数 。 如 果 最 后 的 形 式 参 数 的 名 字 是 args, 则 到 这 个 过 程 的 一 个 调 用 包 含 的 实 际 参 数 可 以 多 于 过 程 拥 有 的 形 式 参 数 。 此 时 , 把 开 始 于 应 当 被 赋 给 args 的 那 个 实 际 参 数 的 所 有 实 际 参 数 组 合 成 一 个 列 表 (有 如 使 用 了 list 命 令 ); 把 这 个 组 合 后 的 值 赋 给 局 部 变 量 args。 在 执 行 body 的 时 候 , 变 量 名 一 般 引 用 局 部 变 量 , 在 被 引 用 时 自 动 建 立 它 们 , 在 过 程 退 出 时 (自 动 )删 除 它 们 。 为 过 程 的 每 个 参 数 自 动 的 建 立 一 个 局 部 变 量 。 只 能 通 过 调 用 global 命 令 或 upvar 命 令 来 访 问 全 局 变 量 。 只 能 通 过 调 用 variable 命 令 或 upvar 命 令 来 访 问 名 字 空 间 变 量 。

proc 命 令 返 回 一 个 空 串 。 在 调 用 一 个 过 程 的 时 候 , 在 一 个 return 命 令 中 指 定 这 个 过 程 的 返 回 值 。 如 果 过 程 不 执 行 一 个 显 式 的 return 命 令 , 则 它 的 返 回 值 是 在 过 程 体 中 执 行 的 最 后 一 条 命 令 的 值 。 如 果 在 执 行 过 程 体 期 间 发 生 了 一 个 错 误 , 则 作 为 一 个 整 体 的 过 程 将 返 回 相 同 的 错 误 。

参 见 SEE ALSO

info(n), unknown(n)

关 键 字 KEYWORDS

argument, procedure

[中 文 版 维 护 人 ]

寒 蝉 退 士

[中 文 版 最 新 更 新 ]

2001/10/17

《 中 国 Linux 论 坛 man 手 册 页 翻 译 计 划 》 :

http://cmpp.linuxforum.net

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh