AppleScript 编程/列表和记录
外观
为了获得最佳效果,您应该打开脚本编辑器,以便在阅读时测试代码和结果。
Applescript 有两种独立的数据结构类用于表示项目集合:list
类和 record
类。列表是对象的有序集合,可以是 AppleScript 理解的任何值或数据结构。说列表内容是有序的,意味着列表中的每个项目都占据一个编号位置。此编号称为项目的索引,可用于从列表中检索特定项目。
列表创建很简单,您在{
和}
之间放置的任何内容都是列表。
set myList to {} -- make a new list
set myList to myList & {1, "two", {7}, {fred:"barney", wilma:"betty", foo:"bar"}, 5} -- add a bunch of items to the list
set k to {6, "three", {8}, {george:"jetson", elroy:"jetson", judy:"jetson"}, 0}
在上例中,我们创建了两个列表。第一个列表l
包含 5 个项目,数字 1,字符串“two”,包含数字 7 的列表,包含三个属性的记录,fred、wilma 和foo,具有字符串值,以及数字 5。
我们可以通过多种方式访问这些项目。语句
item 3 of myList
third item of myList
myList's third item
myList's item 3
将全部返回相同的值,{7}
,即包含数字 7 的列表。
这按字符一次工作。(字符串是字符序列,并相应地表现。)
set my_string to "freedom is not freedom fries"
repeat with counter_variable_name from 1 to count of my_string
set current_character to item counter_variable_name of my_string
end repeat
记录是属性的列表。您可以按名称从记录中检索项目,但不能按索引检索。例如,要检索属性列表{scooby:"doo", elroy:"jetson",grape:"ape"}
的elroy
,我可以按名称检索它。
elroy of {scooby:"doo", elroy:"jetson", grape:"ape"}
这将返回字符串"jetson"
但不能按索引检索。
item 2 of {scooby:"doo", elroy:"jetson", grape:"ape"}
这将返回错误。