字符集
从OS X v10.5(AppleScript 2.0)开始, AppleScript的字符集是Unicode。AppleScript在全球范围内正确保留所有字符,脚本中的注释和文本常量可能包含任何Unicode字符
AppleScript语法使用多个非ASCII字符,可以使用特殊键组合键入。有关AppleScript特别处理的字符的信息,请参阅相关章节。Identifiers、Comments、Text、The Continuation Character、Raw Codes
身份标识
AppleScript标识符是一系列字符,用于标识类名,变量或其他语言元素,例如属性和处理程序的标签。
标识符必须以字母开头,并且可以包含以下任何字符:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
身份标不是大小写敏感的,如myvariable
和MyVariable
这两个变量的命名在AppleScript中的都是指同一个变量
AppleScript会记住并强制执行标识符所带来的第一个大小写。因此,如果它首次遇到myAccount标识符,它将在稍后编译期间将MyAccount和myaccount等版本更改为myAccount。
以下是有效标识符的示例:areaOfCircle,Agent007,axis_of_rotation。
以下是无效的标识符:C-,back&forth,999,why^not。
AppleScript为前面的规则提供了一个漏洞:第一个和最后一个字符是竖线(|)的标识符可以包含任何字符。前导和尾随垂直条不被视为标识符的一部分。
Important: This use of vertical bars can make scripts difficult to read, and is not recommended.
这种垂直条的使用会使脚本难以阅读,因此不建议使用。
下面的命令规则是合法的:|back&forth|
, |Right*Now!|
。
标识符可以包含以反斜杠(\)字符开头的其他竖条,如标识符|This|Or|That|
关键词
关键字是AppleScript语言中的保留字。关键字由小写字母字符组成:abcdefghijklmnopqrstuvwxyz。在少数情况下,例如除了aside from之外,它们成对出现
Important: You should not attempt to reuse keywords in your scripts for variable names or other purposes. Developers should not re-define keywords in the terminology for their scriptable applications.
和大多数编程语言一样,保留关键字不允许被定义成变量,也不允许被重定义。
下图是AppleScript的保留关键字
注释
1、使用(* )注释 例如( hello world *)
2、AppleScript 2.0后可以使用 #
来表示注释 例如 #!/usr/bin/osascript
3、使用--
标识注释内容 列如--hello world
延续性
在AppleScript 中可以使用¬
(打出该字符的快捷键option + L
)来给你个完整的 appleScript语句换行而不会破坏语义的完整性
列如
display dialog "This is just a test." buttons {"Great", "OK"} default button "OK" giving up after 3
//可以写成
display dialog "This is just a test." buttons {"Great", "OK"} ¬
default button "OK" giving up after 3
基本数据类型
Boolean
与其他一些变成语言一样,Boolean 类型的变量的值只能是 true or false
Constant
AppleScript中的全局常量描述了可在整个脚本中使用的常量。
List
数组类型,写法{1,6,"hello",4.5}。
- 一个数组可以包含另一个数组。(可以创建多维数组)
- 空数组 {}
Number
数字文字是一系列数字,可能包括其他字符,例如一元减号,句号(实数)或“E +”(指数表示法)。以下是一些数字文字:
-94596
3.1415
9.9999999999E+10
Record
Record是标记属性的无序集合。Record在脚本中显示为大括号中包含的一系列属性定义,并以逗号分隔。每个属性定义都包含唯一标签,冒号和属性值。例如,以下是具有两个属性的Record
{product:"pen", price:2.34}
- 各大编程语言中的 Dictionary
Text
字符串
Operators
(+ - * /)等操作符。AppleScript 中完整操作符介绍
Variables(变量)
set myName to "John"
copy 33 to myAge
将值赋给变量的语句称为赋值语句。
当AppleScript遇到变量时,它会通过获取其值来评估变量。变量包含在脚本中,当您关闭包含它的脚本时,它的值通常会丢失。
AppleScript变量可以保存任何类的值。例如,您可以将整数值17分配给变量,然后将布尔值true分配给同一个变量
Expressions(表达式)
表达式是具有值的任何词汇元素系列。表达式在脚本中用于表示或派生值。最简单的表达式(称为文字表达式)是脚本中值的表示。更复杂的表达式通常包含文字,变量,运算符和对象说明符。
运行脚本时,AppleScript会将其表达式转换为值。此过程称为评估。例如,当计算以下简单表达式时,结果为21:
3 * 7 --result: 21
对象说明符指定查找另一个对象所需的部分或全部信息。例如,以下对象说明符指定命名文档:
document named "FavoritesList"
更多关于表达式的内容
Statements(语句)
语句是一系列遵循特定AppleScript语法的词法元素。语句可以包括关键字,变量,运算符,常量,表达式等。
每个脚本都包含语句。当AppleScript执行脚本时,它会按顺序读取语句并执行其指令。
控制语句是确定何时以及如何执行其他语句的语句。 AppleScript定义了标准控制语句,如if,repeat和while语句,这些语句在“控制语句参考”中有详细描述。
一个简单的陈述是可以写在一行上的陈述:
set averageTemp to 63 as degrees Fahrenheit
Note: You can use a continuation character (¬) to extend a simple statement onto a second line.
复合语句写在多行上,可以包含其他语句,并在其最后一行中包含单词end(跟随,可选地,由语句的第一个单词)。例如,以下是复合tell语句:
tell application "Finder"
set savedName to name of front window
close window savedName
end tell
- 符合语句可以包含其他的复合语句
Commands(命令)
命令是AppleScript语句中用于请求操作的单词或一系列单词。每个命令都指向一个目标,该目标是响应该命令的对象。目标通常是应用程序对象或macOS中的对象,但它也可以是脚本对象或当前脚本中的值。
以下语句使用AppleScript的get命令获取窗口的名称;目标是Finder应用程序的前窗口:
get name of front window of application "Finder"
了解更多的命令语句可以查阅
Results(结果)
语句的结果是执行语句时生成的值(如果有)。例如,执行语句3 + 4会产生值7.将myText设置为“keyboard”的语句的结果是文本对象“keyboard”。结果可以是任何类。 AppleScript将结果存储在AppleScript Constant中描述的全局可用属性结果中
Raw Codes(原始代码)
使用脚本编辑器打开,编译,编辑或运行脚本时,您可能偶尔会看到用双尖括号或V形符号括起来的术语(«»),在脚本窗口或另一个窗口中。这些术语称为原始格式或原始代码,因为它们代表基础Apple事件代码 AppleScript用来表示脚本术语。
为了与亚洲国家编码兼容,“”和“”“允许作为”«“和”»“的同义词(美国键盘上分别为Option- \和Option-Shift- \),因为后者可以在某些亚洲编码中不存在。