AppleScript中如何将变量值传入关联数组 避免键位取变量名
问题原因
AppleScript 的记录(也就是你用到的关联数组结构)采用{键名:值}的字面量写法定义时,冒号左侧的键名会被识别为固定标识符,不会自动读取对应变量的存储内容。因此你写{nameOfVariable:valueOfVariable}时,键名会固定为字面量nameOfVariable,不会解析成变量里存的"random name"字符串。
修复方案
使用run script动态拼接记录构造语句即可实现动态键名,拼接字符串时用quoted form of转义特殊字符,避免引号、反斜杠等字符引发脚本语法错误:
set nameOfVariable to "random name" set valueOfVariable to "random value" -- 键、值对应的变量都支持动态变更 set newArray to run script "return {" & quoted form of nameOfVariable & ":" & quoted form of valueOfVariable & "}"
运行上述代码即可得到预期结果{"random name":"random value"}。
注意:如果值的类型不是字符串(比如数字、布尔值、列表、其他记录等),拼接时不要对值变量使用
quoted form of,直接拼接变量内容即可,否则会出现类型不匹配错误。
内容的提问来源于stack exchange,提问作者Florin Ţermure
相关产品推荐
相关产品推荐

