PersistentValue
PersistentValue["name"]
表示与键 "name" 关联的永久值.
PersistentValue["name",loc]
表示存储在永久位置 loc 且与 name 关联的永久值.
PersistentValue["name",{loc1,…}]
表示与出现在第一个位置 loci 上的 name 关联的永久值.
更多信息和选项
- PersistentValue["name",…] 运算给出相应的永久值.
- PersistentValue["name",…]=value 可用于设置永久值.
- PersistentValue 允许下列选项:
-
MergingFunction Automatic 应用于所得到的值列表的函数 ValuePreprocessingFunction Identity 应用于要分配的新值的函数 ExpirationDate None 值何时应该过期 PersistenceTime None 值应该存在多久 - 在 PersistentValue["name",loc] 中,永久位置 loc 的可能格式包括:
-
PersistenceLocation["type"] "Local"、"Cloud"、"FrontEndSession" 等的位置 "type" 等同于 PersistenceLocation["type"] PersistenceLocation["type","base"] 带有特殊基(目录等)的位置 "type""base" 等同于 PersistenceLocation["type","base"] - 支持的位置类型包括:
-
"KernelSession" Wolfram 语言内核的当前调用 "FrontEndSession" Wolfram 笔记本前端的当前调用 "Notebook" 正在执行当前计算的笔记本 "ServerSession" 在单个网页服务器上请求的持久性 "CookieManaged" 基于 Wolfram 浏览器 cookie 的持久性 "Local" 基于用户主目录的计算机本地 "LocalShared" 基于 $BaseDirectory 的计算机本地 "Cloud" 在由当前 $CloudBase 定义的云端 "Installation" 安装默认值 - PersistentValue["name"] 等价于 PersistentValue["name",$PersistencePath].
- PersistentValue["name"]=value 等价于 PersistentValue["name",$PersistenceBase]=value.
- PersistentValue["name",loc] 实际上是 PersistentObject["name",loc]["Value"].
- 当指定的是单一永久位置时,如在 PersistentValue["name",loc,…] 中,将不使用 MergingFunction 的设置.
- 在其它情况下,通过设置 MergingFunction->f,返回的最终值是将函数 f 应用于在所有永久位置得到的值列表的结果.
- 除非是通过在 PersistentObject 中的 "MergingFunction" 元数据指定,否则MergingFunction->Automatic 等价于 MergingFunction->First.
- 在 PersistentValue[sym]=value 赋新值前,任何指定的预处理函数在复制前应用到 value.
- 如果预处理函数返回 $Failed,则不会执行赋值.
- 如果没有给定 ValuePreprocessingFunction 的明确设置,则会在 $PersistencePath 中查找使用的设置.
- 过期的永久值被视为不存在,并且可以删除底层的永久对象.
- 可以用 Remove 来清除持久性值. Remove[PersistentValue["name"]] 等价于 Remove[PersistentValue["name",$PersistenceBase]].
范例
打开所有单元关闭所有单元基本范例 (3)
提取在 $PersistencePath 上的所有值的列表:
选项 (8)
MergingFunction (3)
列出在 $PersistencePath 上键 "lval" 的所有存在值:
列出在 $PersistencePath 上的所有存在值:
属性和关系 (5)
新永久对象的默认位置由 $PersistenceBase 给出:
默认情况下,在由 $PersistencePath 给出的所有位置上搜索永久值:
在 MergingFunction->Identity 时,将把所有得到的值在列表中返回:
通过 PersistenceTime 指定的失效日期被转换为绝对失效日期:
可以用 Remove 来清除持久性值:
可能存在的问题 (1)
默认情况下,Remove 只清除由 $PersistenceBase 给定的位置处的值:
清除 $PersistencePath 给出的位置中可能存在的所有值:
文本
Wolfram Research (2017),PersistentValue,Wolfram 语言函数,https://reference.wolfram.com/language/ref/PersistentValue.html (更新于 2019 年).
CMS
Wolfram 语言. 2017. "PersistentValue." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2019. https://reference.wolfram.com/language/ref/PersistentValue.html.
APA
Wolfram 语言. (2017). PersistentValue. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/PersistentValue.html 年