我希望在Applescript中创建一个连续的数字列表。可以使用repeat
循环创建这样的列表,但这看起来很混乱。有什么可以这样的吗?
range from 1 to 10
-> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
答案 0 :(得分:2)
是的,首先回答最后一个问题,(再用四行)列表重复循环:
set nlist to {}
repeat with n from 0 to 9
set nlist2 to {n + 1}
set nlist to nlist & nlist2
end repeat
nlist
--> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
基本上,如果您重复合并列表,则会创建一个列表列表, 而...
set nlist to {}
repeat with n from 0 to 9
set nlist to {n + 1}
end repeat
nlist
--> {10}
...只会导致循环的最后一个数字。 (当然,也必须有其他方法。)
与范围最接近的单行等效项可能是“项目1到10”-但仅适用于现有列表;例如:
将范围B设置为{1、2、3、4、5、6、7、8、9、10、11、12、13、14、15}
将nlist设置为rangeB的项目1至10
nlist
-> {1、2、3、4、5、6、7、8、9、10}
关于标题问题,如果它是您需要的功能,则在Applescript中它们称为处理程序,没有预设的范围函数,但是您可以像这样为您的任务创建自定义范围函数:
在范围(a,b)
将nlist设置为{}
从a-1到b-1重复n
将nlist2设置为{n + 1}
将nlist设置为nlist&nlist2
结束重复
最终范围
-
范围(5,20)
-> {5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
答案 1 :(得分:1)
No, there is not.
AppleScript is a very simple scripting language with a small core command set.
But it's extendible. Feel free to write a scripting addition or library providing this functionality.
PS: In AppleScript repeat loops are not messy at all ;-)