CloudExpression
CloudExpression["name"]
表示一个表达式,其值持续存储在云端.
CloudExpression["http://…"], CloudExpression["https://…"]
表示一个已知 URI 的云表达式.
CloudExpression[base,part1,part2,…]
表示由 parti 给定的云表达式部分.
更多信息和选项
- CloudExpression["name"] 立即计算为 CloudExpression[uri],其中 URI 的路径由 $CloudExpressionBase 的值确定.
- 存储在云表达式中的值可以是任意 Wolfram 语言表达式.
- 当值由嵌套列表和关联组成时,部分的查询和更新将直接在云端处理.
- CloudExpression[…][part1,part2,…] 提取云表达式指定部分的值.
- CloudExpression[…][] 提取整个云表达式的值.
- CloudExpression[…][part1,part2,…]=value 设定云表达式的部分值.
- 以下操作可以在 CloudExpression 对象上执行:
-
Get 获取云表达式的完全值 Put 将一个新的完全值放置在云表达式中 Part 返回表示部分的云表达式对象 Set 对云表达式部分赋新值 Unset 去除云表达式的部分 AppendTo 追加至云表达式内部的关联列表 AssociateTo 将一个新值与关联中的键关联 AddTo,Increment,… 对云表达式的部分进行添加、递增,等等 DeleteCloudExpression 删除云表达式 Length 返回云表达式的长度 KeyExistsQ 测试云表达式中是否存在键 SetOptions 设置与云表达式关联的选项 Options 获取与云表达式关联的选项 SetPermissions 设置云表达式的权限 ClearPermissions 清除云表达式的权限 - CloudExpression[…][[part1,part2,…]] 给出 CloudExpression[…,part1,part2,…],值可以从中使用 Get 提取.
- 云表达式具有下列选项,其值存储在云端:
-
PartProtection Automatic 哪些部分受保护而不发生更改 Permissions Automatic 访问权限等 - 在通过 CreateCloudExpression 创建云表达式后,云表达式的选项可以使用 Options 提取,使用 SetOptions 更改.
- 在关联中,当对一个缺失键应用可变操作时,先将关联的值初始化,然后再执行该操作.
-
Set 把缺失的键与 Set 指定的值关联起来 AssociateTo 把值初始化为一个空的关联 AppendTo 把值初始化为一个空的列表 AddTo, Increment, ... 把值初始化为 0 TimesBy, DivideBy 把值初始化为 1
范例
打开所有单元关闭所有单元基本范例 (2)
范围 (9)
使用 AppendTo 新加一个键:
查找不存在的键,则返回 Failure 对象:
尝试更新与键 "c" 相关联的值且 PartProtection 设置为 Automatic 时,会产生 Failure 对象:
将 PartProtection 的值改为 None,允许任意更新操作:
当对机器精度的数字进行操作时,云表达式支持原地进行加法运算:
云表达式支持 Length:
云表达式的一部分也支持 Length:
云表达式支持 KeyExistsQ:
KeyExistsQ 也可用于云表达式的组成部分:
选项 (2)
PartProtection (1)
属性和关系 (8)
储存在云表达式里的整个表达式可用 Put 替换:
现存的值可用 Get 提取:
Get[CloudExpression[…]] 和 CloudExpression[…][] 的缩略形式等价:
DeleteCloudExpression 可删除云表达式:
AppendTo 给列表末尾添加新元素:
AppendTo 也可作用于 Association:
若该键不在关联关系里,则会增加一个键值对(key-value pair ):
AppendTo 改变与现存键相关联的值:
若该键不是已经存在,则 AppendTo 会在关联关系的末尾加上一条新的条目:
若该条目已经存在,则 AssociateTo 不会对其重新排序:
使用 Unset 可移除每个列表的最后一个元素:
将部分保护(part protection)设置为 None:
当部分保护(part protection)设置为 None 是,可以移除第一个列表:
云表达式可被用来对事件进行计数. 先把一个关联存储到云表达式中:
对一组随机用户开始计数. 如果之前不存在,在计数开始之前自动把值初始化为 0:
可以用云表达式来收集如 HTTP 请求这样的事情的元数据. 先把一个关联存储到云表达式中:
产生一个关联列表,表示 HTTP 请求. 每个关联含有用户名称和发起请求的客户的 user-agent:
通过随机选取用户(表示发起请求的客户)收集元数据. 如果值之前不存在,在执行 AppendTo 操作之前,把值自动初始化为空列表:
使用 FileByteCount 可获取云表达式使用的云储存:
可能存在的问题 (4)
云表达式不支持 PrependTo:
把得分值 (score value) 与缺失用户关联在一起会产生一个失败的对象 (failure object):
需要时,可用 KeyExistsQ 来初始化新键的值:
插入嵌套的键,在进行 Set 操作前,自动把 "last_score" 初始化为一个空关联:
如果没有设置 PartProtection->None,则无法设置或删除无原子(nonatomic value)值:
使用 SetOptions 可允许修改:
可将不能表示为 64 位机器精度整数或实数的数字存储到云表达式中:
对扩展精度的整数进行原地 (in-place) 算术运算可能导致整数被强制转换为实数:
如果试图对扩展精度的整数或实数进行算术运算,且该数字不能被强制转换为机器精度的数字,将产生一个失败对象,也无法完成相应的操作:
文本
Wolfram Research (2016),CloudExpression,Wolfram 语言函数,https://reference.wolfram.com/language/ref/CloudExpression.html (更新于 2021 年).
CMS
Wolfram 语言. 2016. "CloudExpression." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2021. https://reference.wolfram.com/language/ref/CloudExpression.html.
APA
Wolfram 语言. (2016). CloudExpression. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/CloudExpression.html 年