您在Applescript中打高尔夫球有哪些秘诀?我正在寻找可以应用于一般至少在某种程度上特定于Applescript的高尔夫问题代码的想法(例如,“删除评论”不是答案)。
您在Applescript中打高尔夫球有哪些秘诀?我正在寻找可以应用于一般至少在某种程度上特定于Applescript的高尔夫问题代码的想法(例如,“删除评论”不是答案)。
Answers:
该of
操作被用来从一个对象的属性:
log words of "Hello World"
但是在许多情况下,您可以使用's
快捷方式保存1个字符:
log "Hello World"'s words
Applescript编辑器是一个方便的小IDE,可以语法突出显示和美化您的代码。但是,出于打高尔夫球的目的,它适得其反,因为它增加了缩进和多余的关键字,例如在end
语句之后。例如:
repeat with w in "Hello World"'s words
log w
end
粘贴到Applescript编辑器并编译/运行时,将变为以下内容:
repeat with w in "Hello World"'s words
log w
end repeat
显然,第一个片段对于打高尔夫球更好。
end
是特定于Applescript的。
end
当您有多个嵌套块时,哪个块属于哪个块开始语句
tell
块在Applescript中很常见:
tell application "TextEdit"
activate
end tell
但是,为了节省空间,当tell
块的内部仅一行时,以下内容等效:
tell application "TextEdit" to activate
tell app "TextEdit" to activate
。
对于需要引用执行某项操作的任何操作,即
登录“ Hello World!”
您可以缩短为
登录“ Hello World!”
在重复循环中,可以完全删除单词“ times”。
重复x次 结束
与
重复x 结束
每次调用这些运算符时,都可以分别用≤
和替换它们≥
。尽管这可能不会减少字节数(除非实现特殊的字节计数约定,否则我建议这样做),但确实会减少字符数。
您可以使用以下字符从STDIN中进行抓取:
在运行argv 结束
如果您需要快速退出代码(无论出于何种原因,即防止使用过多的if
s)...
放弃
Applescript允许插入一些额外的关键字以提高可读性:
log the words of "Hello World"
但是the
这里完全多余,可以省掉4个字符:
log words of "Hello World"
log"Hello World"'s words
,因为您1)不需要在任何表达式和引用的项目之间加空格,并且2)因为's
可以用于替换of
。
与关于报价的帖子类似,我后来意识到,您也可以缩短以下内容:
如果“ a” =(x作为字符串)的字符1,则返回{true,true}
至
如果“ a” =(x作为字符串)的字符1,则返回{true,true}
它也会为您隔开括号。在此示例中,我保存了5个字节。
在需要区分大小写的问题中,可能很难实际处理案例。
考虑情况 (与区分大小写的东西有关) 结束考虑
直到我真正需要它之前,我才真正知道它。使用此提示页面中的其他提示,我们可以将其减少为:
考虑情况 (与区分大小写的东西有关) 结束
据我所知,它确实需要完整的陈述。(我尝试了很多事情。)有关更多详细信息,请参见此页面。
在某些特殊情况下,“双尖括号”或“双人字形”可能比命令,参数或常量的英文名称短。
人字形编码的表单将收缩AppleScript,以将剪贴板从20个字符删除为16个字符:
set the clipboard to -- 20
«event JonspClp» -- 16
从对话框中获取文本时,它会掉2个字符(就像节拍器和Pi Day一样):
(display dialog""default answer"")'s text returned -- 46
(display dialog""default answer"")'s«class ttxt» -- 44
(如果您至少具有Mac OS X 10.4,则可能希望避免出现对话框,而使用osascript(1)的命令行参数。)
使用美国键盘时,«是option- \,而»是option-shift- \。一个命令«event abcdefgh»
有16个字符。参数或常量«class abcd»
包含12个字符。
人字形编码的形式对于高尔夫几乎总是太长了。这是一个没有双尖括号的示例:
set x to open for access"output"write permission 1
write"One line of text
"to x
close access x
和他们一样:
set x to«event rdwropen»"output"given«class perm»:1
«event rdwrwrit»"One line of text
"given«class refn»:x
«event rdwrclos»x
将_open for access
(16)更改为«event rdwropen»
(16)是中性的。将write permission_
(17)更改为given«class perm»:
(18)需要1个字符。其他双尖括号的价格更高。
要使用双尖括号,您需要知道神奇的4字母或8字母代码。通过从脚本编辑器中保存脚本文件,然后在十六进制编辑器中将其打开,我找到了一些代码。我emacs
在航站楼里跑了,习惯了M-x hexl-find-file
。我发现和编辑的一些代码,就像JonspClp
进入JanspClp
,并ttxt
进入atxt
。然后,我保存了文件并在“脚本编辑器”中将其重新打开。«event JanspClp»
并«class atxt»
出现在脚本中。
名为AppleScript术语和Apple事件代码参考的文档列出了一些代码。我在https://applescriptlibrary.wordpress.com/找到了它的副本
在保存脚本之前,脚本编辑器会将双尖括号翻译为英语。为了人字形尊重,您必须在另一个文本编辑器(例如TextEdit)中编写脚本。将脚本另存为Mac OS Roman(或MacRoman)编码的纯文本文件。Mac OS X最好使用.applescript后缀来命名文件。
如果计算字节数,则MacRoman每个字符有1个字节,因此每个«或»都计为1个字节。