CloudExpression["name"]
表示一个表达式,其值持续存储在云端.
CloudExpression["http://…"], CloudExpression["https://…"]
表示一个已知 URI 的云表达式.
CloudExpression[base,part1,part2,…]
表示由 parti 给定的云表达式部分.
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
范例
打开所有单元 关闭所有单元基本范例 (3)
范围 (11)
ce = CreateCloudExpression[{a, b, c}]ce[2]ce[2] = xce[]AppendTo[ce, y];ce[3]=.ce[]ce = CreateCloudExpression[<|"a" -> 1, "b" -> 1, "x" -> 1|>]ce["b"] = 2;AssociateTo[ce, "c" -> 3];ce["x"]=.ce[]ce = CreateCloudExpression[0]Do[ce++, 5]ce[]ce -= 5;ce[]ce = CreateCloudExpression[Range[5]]ce[3]ce[1 ;; 3]ce[1 ;; 3] = 0;ce[1 ;; 3]ce[3]++;AppendTo[ce, 6];ce[]ce = CreateCloudExpression[{{1, 2, 3}, {4, 5, 6}, {7, 8, 10}}]ce[]//MatrixFormce[1]ce[All, 1]ce[All, 1] = 0;ce[]//MatrixFormce[-1, All] += 2ce[]//MatrixFormce[-1, -1] = 99;ce[]//MatrixFormSetOptions[ce, PartProtection -> None];ce[-1]=.ce[]//MatrixFormce = CreateCloudExpression[<|"a" -> {Today, 4}, "b" -> {Yesterday, 2}|>]ce["a"]使用 AppendTo 新加一个键:
AppendTo[ce, "c" -> {Tomorrow, 6}];ce["c"]查找不存在的键,则返回 Failure 对象:
ce["d"]尝试更新与键 "c" 相关联的值且 PartProtection 设置为 Automatic 时,会产生 Failure 对象:
ce["c"] = {Tomorrow, 9}将 PartProtection 的值改为 None,允许任意更新操作:
SetOptions[ce, PartProtection -> None];ce["c"] = {Tomorrow, 3}ce[]ce = CreateCloudExpression[<|"a" -> {1, 2}, "b" -> {3, 4}|>]part = ce[["a"]]Get[part]AppendTo[part, 3]ce[]ce = CreateCloudExpression[<|"integer" -> 5, "real" -> 1.23|>]当对机器精度的数字进行操作时,云表达式支持原地进行加法运算:
ce[All] += 2ce[]ce[All] *= 3ce[]ce[All] /= 2ce[]ce = CreateCloudExpression[[image]];ce[]ce[1]ce = CreateCloudExpression[{<|"name" -> "Alice", "height" -> Quantity[165, "Centimeters"], "weight" -> Missing["Unknown"]|>, <|"name" -> "Bob", "height" -> Quantity[174, "Centimeters"], "weight" -> Missing["Unknown"]|>}]云表达式支持 Length:
Length[ce]云表达式的一部分也支持 Length:
Length[ce[[1]]]ce = CreateCloudExpression[<|"Alice" -> <|"height" -> Quantity[165, "Centimeters"], "weight" -> Quantity[57, "Kilograms"]|>, "Bob" -> <|"height" -> Quantity[174, "Centimeters"]|>|>]云表达式支持 KeyExistsQ:
KeyExistsQ[ce, "Bob"]KeyExistsQ[ce, "John"]KeyExistsQ 也可用于云表达式的组成部分:
KeyExistsQ[ce["Alice"], "weight"]KeyExistsQ[ce["Bob"], "weight"]选项 (2)
PartProtection (1)
ce = CreateCloudExpression[{{1, 2, 3}, {4, 5, 6}}]将其 PartProtection 设为 All,可以防止任何种类的更新:
SetOptions[ce, PartProtection -> All]尝试更新任何值都会产生一个 Failure 对象:
ce[All, 1] = 0属性和关系 (9)
CloudExpressions 返回现有的云表达式:
CloudExpressions[]ce = CreateCloudExpression[{1, 2, 3}]储存在云表达式里的整个表达式可用 Put 替换:
Put[<|"a" -> 1, "b" -> 2|>, ce]现存的值可用 Get 提取:
Get[ce]Get[CloudExpression[…]] 和 CloudExpression[…][] 的缩略形式等价:
ce[]ce = CreateCloudExpression[{1, 2, 3}]DeleteCloudExpression 可删除云表达式:
DeleteCloudExpression[ce]DeleteObject 也可用于删除云表达式:
ce = CreateCloudExpression[{1, 2, 3}]AppendTo 给列表末尾添加新元素:
AppendTo[ce, 4]ce[]AppendTo 也可作用于 Association:
ce = CreateCloudExpression[<|"a" -> 1, "b" -> 2|>]若该键不在关联关系里,则会增加一个键值对(key-value pair ):
AppendTo[ce, "c" -> 3]ce[]AppendTo 改变与现存键相关联的值:
AppendTo[ce, "b" -> 0]ce[]ce = CreateCloudExpression[<|"a" -> 1, "b" -> 2|>]若该键不是已经存在,则 AppendTo 会在关联关系的末尾加上一条新的条目:
AppendTo[ce, "x" -> 3];AppendTo[ce, "b" -> 2];ce[]若该条目已经存在,则 AssociateTo 不会对其重新排序:
AssociateTo[ce, "x" -> 4];ce[]ce = CreateCloudExpression[{{1, 2, 3}, {4, 5, 6}, {7, 8, 10}}]使用 Unset 可移除每个列表的最后一个元素:
ce[[All, -1]]=.ce[]将部分保护(part protection)设置为 None:
SetOptions[ce, PartProtection -> None]当部分保护(part protection)设置为 None 是,可以移除第一个列表:
ce[[1]]=.ce[]云表达式可被用来对事件进行计数. 先把一个关联存储到云表达式中:
ce = CreateCloudExpression[<||>]users = {"Alice", "Bob", "Charlie", "David", "Eva"};对一组随机用户开始计数. 如果之前不存在,在计数开始之前自动把值初始化为 0:
Do[ce[RandomChoice[users]]++, 5];ce[]可以用云表达式来收集如 HTTP 请求这样的事情的元数据. 先把一个关联存储到云表达式中:
ce = CreateCloudExpression[<||>]产生一个关联列表,表示 HTTP 请求. 每个关联含有用户名称和发起请求的客户的 user-agent:
users = {<|"user" -> "Alice", "user-agent" -> "Mozilla/5.0"|>,
<|"user" -> "Alice", "user-agent" -> "Wolfram HTTPClient"|>,
<|"user" -> "Bob", "user-agent" -> "Safari"|>};通过随机选取用户(表示发起请求的客户)收集元数据. 如果值之前不存在,在执行 AppendTo 操作之前,把值自动初始化为空列表:
Scan[
AppendTo[ce[#user], <|"date" -> Now, "user-agent" -> #"user-agent"|>]&,
RandomChoice[users, 8]
]ce[]使用 FileByteCount 可获取云表达式使用的云储存:
ce = CreateCloudExpression[{[image], [image]}]FileByteCount[ce]可能存在的问题 (4)
云表达式不支持 PrependTo:
ce = CreateCloudExpression[{1, 2, 3}];PrependTo[ce, 0]ce = CreateCloudExpression[<|"Bob" -> <|"last_score" -> 11, "best" -> 31|>|>]把得分值 (score value) 与缺失用户关联在一起会产生一个失败的对象 (failure object):
ce["Alice", "last_score"] = 7需要时,可用 KeyExistsQ 来初始化新键的值:
If[!KeyExistsQ[ce, "Alice"], ce["Alice"] = <||>;]插入嵌套的键,在进行 Set 操作前,自动把 "last_score" 初始化为一个空关联:
ce["Alice", "last_score"] = 7如果没有设置 PartProtection->None,则无法设置或删除无原子(nonatomic value)值:
ce = CreateCloudExpression[{{1}, {1, 2}, {1, 2, 3}}]ce[1] = None使用 SetOptions 可允许修改:
SetOptions[ce, PartProtection -> None]ce[1] = None;ce[]可将不能表示为 64 位机器精度整数或实数的数字存储到云表达式中:
ce = CreateCloudExpression[<|"bigInt" -> 100!, "biggerInt" -> 10*^600|>]ce[]对扩展精度的整数进行原地 (in-place) 算术运算可能导致整数被强制转换为实数:
ce["bigInt"] *= 2ce["bigInt"]如果试图对扩展精度的整数或实数进行算术运算,且该数字不能被强制转换为机器精度的数字,将产生一个失败对象,也无法完成相应的操作:
ce["biggerInt"] *= 2巧妙范例 (3)
polyhedra = Association[Rule@@@PolyhedronData["Chiral", {"StandardName", "Graphics3D"}]
];Take[polyhedra, 2]ce = CreateCloudExpression[polyhedra]FileByteCount[ce]ce["PentagonalHexecontahedron"]创建一个网页表单进行人口动态统计调查. 先产生一个云表达式来收集数据:
ce = CreateCloudExpression[{}, "demo/BMISurvey"]form = FormFunction[{
"sex" -> <|"Label" -> "Sex", "Interpreter" -> {"Male" -> "M", "Female" -> "F"}|>,
"age" -> <|"Label" -> "Age", "Interpreter" -> Restricted["Integer", {0, 130}]|>,
"mass" -> <|"Label" -> "Mass", "Interpreter" -> Interpreter[Restricted["Quantity", "Kilograms", {0, 400}]]|>,
"height" -> <|"Label" -> "Height", "Interpreter" -> Interpreter[Restricted["Quantity", "Centimeters", {30, 300}]]|>
},
Block[{hcm, mkg, ce = CloudExpression["demo/BMISurvey"]},
mkg = N[QuantityMagnitude[#mass], MachinePrecision];
hcm = N[QuantityMagnitude[#height], MachinePrecision];
AppendTo[ce, <|"mass" -> mkg, "height" -> hcm, "age" -> #age, "sex" -> #sex|>];
"Thank you for submitting!"
]&,
AppearanceRules -> <|"Title" -> "BMI Sampling"|>
]formCloudObject = CloudDeploy[form, CloudObject[], Permissions -> "Public"]Histogram[ce[All, "age"], {1}]dataBySex = GatherBy[ce[], #sex&];bmi = Map[(#mass / (#height / 100) ^ 2)&, dataBySex, {2}];Histogram[bmi, {1}, "Probability", AxesLabel -> {"BMI", None}, ChartLegends -> {"Female", "Male"}]CreateCloudExpression[<|"timings" -> {}, "users" -> <||>, "languages" -> <||>|>, "demo/form/languageIdentify"]创建一个识别所请求字符串的语言的表单函数. 该表单函数还将记录请求的结果、提出请求的云用户的 ID 以及花费的时间:
form = FormFunction[{"sentence" -> <|"Label" -> None, "Hint" -> "Please enter the sentence and let the Wolfram language identify the language."|>},
Block[{ce = CloudExpression["demo/form/languageIdentify"],
requesterID, language, timing},
requesterID = Replace[$RequesterCloudUserID, None -> "Anonymous"];
{timing, language} = AbsoluteTiming[LanguageIdentify[#sentence]];
AppendTo[ce["users", requesterID],
<|"timing" -> timing, "submitDate" -> Now, "language" -> language|>];
ce["languages", CommonName[language]]++;
AppendTo[ce["timings"], timing];
language
]&,
AppearanceRules -> <|"Title" -> "Language identifier"|>
]CloudDeploy[form, CloudObject["demo/form/langID"], Permissions -> "Public"]ce = CloudExpression["demo/form/languageIdentify"];
ce["languages"]DateHistogram[ce["users", All, All, "submitDate"], "Day"]Dataset[ce["users", "documentation@wolfram.com"]]文本
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 年
BibTeX
@misc{reference.wolfram_2026_cloudexpression, author="Wolfram Research", title="{CloudExpression}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/CloudExpression.html}", note=[Accessed: 07-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_cloudexpression, organization={Wolfram Research}, title={CloudExpression}, year={2021}, url={https://reference.wolfram.com/language/ref/CloudExpression.html}, note=[Accessed: 07-September-2026]}