Ссылка класса

Класс является категорией для объектов та доля характеристики. AppleScript определяет классы для общих объектов, используемых в сценариях AppleScript, таких как псевдонимы, булевы значения, целые числа, текст, и т.д.

Каждый объект в сценарии является экземпляром определенного класса и имеет те же свойства (включая class свойство), может содержать те же виды элементов и поддерживает те же виды операций и приведений как другие объекты того типа. Объекты, которые являются экземплярами типов AppleScript, могут использоваться где угодно в сценарии — они не должны быть в a tell блок, указывающий приложение.

Приложения Scriptable также определяют свои собственные классы, такие как окна и документы, обычно содержащие свойства и элементы на основе многих основных классов AppleScript, описанных в этой главе. Сценарии получают эти объекты в контексте приложений, определяющих их. Для получения дополнительной информации о приложениях типов классов обычно поддерживайте, смотрите «Стандартные классы» в Техническом примечании TN2106, Пишущий сценарий Интерфейсных Инструкций.

псевдоним

Персистентная ссылка на существующий файл, папку или объем в файловой системе.

Для соответствующей информации посмотрите file, POSIX file, и псевдонимы и файлы.

Свойства объектов псевдонима
class
 Доступ:только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение всегда alias.
POSIX path
 Доступ:только для чтения
 Класс:текст
 Путь стиля POSIX к объекту.


Поддерживаемые приведения

AppleScript поддерживает приведение alias возразите против a text объект или единственный элемент list.

Примеры
set zApp to choose application as alias -- (then choose Finder.app)
--result: alias "Leopard:System:Library:CoreServices:Finder.app:"
class of zApp --result: alias
zApp as text --result: "Leopard:System:Library:CoreServices:Finder.app:"
zApp as list --result: {alias "Leopard:System:Library:CoreServices:Finder.app:"}

Можно использовать POSIX path свойство для получения пути стиля POSIX к элементу, именуемому псевдонимом:

POSIX path of zApp --result: "/System/Library/CoreServices/Finder.app/"
Обсуждение

Можно только создать псевдоним к уже существующей файлу или папке.

Специальные замечания

AppleScript 2.0 пытается разрешить псевдонимы только при выполнении сценария. Однако в более ранних версиях, AppleScript пытается разрешить псевдонимы во время компиляции.

приложение

Приложение на локальной машине или доступном сервере.

Объект приложения в сценарии имеет все свойства, описанные здесь, которые обрабатываются AppleScript. Это может иметь дополнительные свойства, в зависимости от определенного приложения, к которому это относится.

Свойства объектов приложения
class
 Доступ:только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение всегда application.
frontmost
 Доступ:только для чтения
 Класс:булевская переменная
 Приложение frontmost?
 Запуск в AppleScript 2.0, доступ к приложению frontmost свойство возвращает булево значение, не запуская приложение или отправляя ему событие.
 Значение frontmost для приложений только для фона приложения элемента UI, такие как не работающие Системные события и приложения всегда false.
id
 Доступ:только для чтения
 Класс:текст
 Идентификатор пакета приложения (значение по умолчанию) или его код подписи с четырьмя символами. (Новый в AppleScript 2.0.)
 Например, идентификатор пакета для приложения TextEdit "com.apple.TextEdit". Его код подписи с четырьмя символами 'ttxt'. Если Вы просите объект приложения id свойство, Вы получите версию идентификатора пакета, если приложение не будет иметь идентификатора пакета и действительно имеет код подписи.
name
 Доступ:только для чтения
 Класс:текст
 Имя приложения.
 Запуск в AppleScript 2.0, доступ к приложению name свойство возвращает имя приложения как текст, не запуская приложение или отправляя ему событие.
running
 Доступ:только для чтения
 Класс:булевская переменная
 Приложение работает? (Новый в AppleScript 2.0.)
 Доступ к приложению running свойство возвращает булево значение, не запуская приложение или отправляя ему событие.
 Можно также спросить приложение утилиты System Events, работает ли приложение. В то время как требуется больше строк в Вашем сценарии для этого, что опция доступна в более ранних версиях Mac OS.
version
 Доступ:только для чтения
 Класс:текст
 Версия приложения.
 Запуск в AppleScript 2.0, доступ к этому свойству возвращают версию приложения как текст, не запуская приложение или отправляя ему событие.


Поддерживаемые приведения

AppleScript поддерживает приведение application возразите против единственного элемента list.

Примеры

Можно определить, работает ли приложение на данном компьютере, не запуская его (это не будет работать, если цель находится на удаленном компьютере):

tell application "iTunes" -- doesn't automatically launch app
    if it is running then
        pause
    end if
end tell

Можно также использовать этот формат:

if application "iTunes" is running
    tell application "iTunes" to pause
end if

Следующие утверждения указывают приложение TextEdit, соответственно, его подпись, его ID пакета, и путем POSIX к определенной версии TextEdit:

application id "ttxt"
application id "com.apple.TextEdit"
application "/Applications/TextEdit.app"

Можно предназначаться для удаленного приложения с a tell оператор. Для получения дополнительной информации посмотрите “Remote Applications”.

Специальные замечания

При запуске в OS X v10.5, в поведении приложения существует несколько изменений:

В предыдущих версиях AppleScript использование новых встроенных свойств приложения отступит к отправке события к приложению, но приложение может не обработать эти свойства таким же образом или обработать их вообще. (Большинство приложений обработает name, version, и frontmost; id и running являются редкими.) Другие новые функции, описанные выше, требуют AppleScript 2.0.

булевская переменная

Логическое значение истинности.

A boolean объект оценивает к одной из констант AppleScript true или false. Булево выражение содержит один или больше boolean объекты и оценивают к true или false.

Свойства объектов Boolean
class
 Доступ:только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение всегда boolean.


Операторы

Берущие операторы boolean объекты как операнды and, or, not, &, =, и , а также их текстовые эквиваленты: is equal to, is not equal to, equals, и т.д.

= оператор возвращается true если оба операнда оценивают к тому же значению (также true или false); оператор возвращается true если операнды оценивают к различным значениям.

Бинарные операторы and и or взять boolean объекты как операнды и булевы значения возврата. and работа, такой как (2 > 1) and (4 > 3), имеет значение true если оба его операнда true, и false иначе. or работа, такой как (theString = "Yes") or (today = "Tuesday"), имеет значение true если любой из его операндов true.

Унарное not оператор изменяет a true значение к false или a false значение к true.

Оператор связи (&) создает список, содержащий эти два булевых значения по обе стороны от него; например:

true & false --result: {true, false}

Для получения дополнительной информации об этих операторах посмотрите Ссылку Операторов.

Поддерживаемые приведения

AppleScript поддерживает приведение a boolean возразите против единственного элемента list, a text объект, или integer.

Примеры

Следующее является простыми булевыми выражениями:

true
false
paragraphCount > 2

AppleScript предоставляет булевы константы true и false служить результатом оценки Логической операции. Но сценарии редко должны использовать эти литералы явно, потому что само булево выражение оценивает к булеву значению. Например, рассмотрите следующие два отрывка сценария:

if companyName is equal to "Acme Baking" then
    return true
else
    return false
end if
 
return companyName is equal to "Acme Baking"

Вторая, более простая версия, просто возвращает значение булева сравнения companyName is equal to "Acme Baking", таким образом, это не должно использовать булеву константу.

Обсуждение

При передаче булева значения в качестве параметра команде форма может измениться при компиляции команды. Например, следующая строка

choose folder showing package contents true

преобразовывается в это, когда скомпилировано AppleScript:

choose folder with showing package contents

Это стандартно для AppleScript для компиляции выражений параметра от булевой формы (такой как showing package contents true или invisibles false) в with форма (with showing package contents или without invisibles, соответственно).

класс

Указывает класс объекта или значения.

Все классы имеют a class свойство, указывающее тип класса. Значение class свойство является идентификатором.

Свойства объектов класса
class
 Доступ:только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение этого свойства всегда class.


Операторы

Операторы, принимающие значения идентификатора класса как операнды, &, =, , и as.

Оператор приведения as берет объект одного типа класса и принуждает его к объекту типа, указанного идентификатором класса. Например, следующее утверждение принуждает a text объект в соответствие real:

"1.5" as real --result: 1.5
Поддерживаемые приведения

AppleScript поддерживает приведение идентификатора класса к единственному элементу list или a text объект.

Примеры

Выяснение класса типа такой как integer результаты в значении class:

class of text --result: class
class of integer --result: class

Вот класс булева литерала:

class of true --result: boolean

И вот некоторые дополнительные примеры:

class of "Some text" --result: text
class of {1, 2, "hello"} --result: list
постоянный

Слово с предопределенным значением.

Константы обычно используются для перечислимых типов. Вы не можете определить константы в сценариях; константы могут быть определены только приложениями и AppleScript. Посмотрите Глобальные Константы в AppleScript для получения дополнительной информации.

Свойства постоянных объектов
class
 Доступ: только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение этого свойства всегда constant.


Операторы

Берущие операторы constant объекты как операнды &, =, , и as.

Поддерживаемые приведения

AppleScript поддерживает приведение a constant возразите против единственного элемента list или a text объект.

Примеры

Одно место Вы используете константы, определенные AppleScript, находится в текстовых сравнениях, выполняемых с considering или ignoring операторы (описанный в considering / ignoring (text comparison)). Например, в следующих операторах сценария, punctuation, hyphens, и white space константы:

considering punctuation but ignoring hyphens and white space
    "bet-the farm," = "BetTheFarm," --result: true
end considering
class of hyphens --result: constant

Заключительный оператор показывает что класс hyphens constant.

Обсуждение

Константы не являются текстовыми строками, и они не должны быть окружены кавычками.

Литеральные константы определяются в Литералах и Константах.

В дополнение к константам, определенным AppleScript, приложения часто определяют перечислимые типы, которые будут использоваться для параметров команды или значений свойств. Например, iTunes search команда определяет эти константы для указания области поиска:

albums
all
artists
composers
displayed
songs
дата

Указывает день недели, дата (месяц, день месяца и года), и время (часы, минуты и секунды).

Для получения текущей даты используйте команду current date:

set theDate to current date
--result: "Friday, November 9, 2007 11:35:50 AM"

Можно получить и установить различные части a date объект через свойства даты и времени, описанные ниже.

При компиляции сценария AppleScript выводит на экран значения даты и времени согласно формату, указанному в Установках системы.

Свойства объектов даты
class
 Доступ: только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение этого свойства всегда date.
day
 Доступ: чтение-запись
 Класс:целое число
 Указывает день месяца a date объект.
weekday
 Доступ: только для чтения
 Класс:постоянный
 Указывает день недели a date объект, с одной из этих констант: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, или Sunday.
month
 Доступ: чтение-запись
 Класс:постоянный
 Указывает месяц года a date объект, с одной из констант January, February, March, April, May, June, July, August, September, October, November, или December.
year
 Доступ: чтение-запись
 Класс:целое число
 Указывает год a date объект; например, 2004.
time
 Доступ: чтение-запись
 Класс:целое число
 Указывает число секунд с полуночи a date объект; например, 2700 эквивалентно 0:45 (2700 / 60 секунд = 45 минут).
date string
 Доступ: только для чтения
 Класс:текст
 A text объект, указывающий часть даты a date объект; например, "Friday, November 9, 2007".
 Для получения компактной версии даты использовать short date string . Например, short date string of (current date) --result: "1/27/08".
time string
 Доступ: только для чтения
 Класс:текст
 A text объект, указывающий часть времени a date объект; например, "3:20:24 PM".


Операторы

Берущие операторы date возразите, как операнды &, +, , =, , >, , <, , comes before, comes after, и as. В выражениях, содержащих >, , <, , comes before, или comes after, более позднее время больше, чем более раннее время.

AppleScript поддерживает следующие операции на date объекты с + и операторы:

date + timeDifference
--result: date
date - date
--result: timeDifference
date - timeDifference
--result: date

где timeDifference integer значение, указывающее разницу во времени в секундах. Для упрощения нотации различий времени можно также использовать один или больше из них этих констант:

minutes
    60
hours
    60 * minutes
days
    24 * hours
weeks
    7 * days

Вот пример:

date "Friday, November 9, 2007" + 4 * days + 3 * hours + 2 *  minutes
--result: date "Tuesday, November 13, 2007 3:02:00 AM"

Для выражения разницы во времени в более удобной форме разделите число секунд надлежащей константой:

31449600 / weeks --result: 52.0

Для получения целого числа часов дни, и т.д., используют div оператор:

151200 div days --result: 1

Получить различие, в секундах, между текущим временем и Средним временем по Гринвичу, использованием time to GMT команда.

Поддерживаемые приведения

AppleScript поддерживает приведение a date возразите против единственного элемента list или a text объект.

Примеры

Следующие выражения показывают некоторые варианты для указания даты, вместе с результатами компиляции операторов. При построении даты с помощью только частичную информацию AppleScript заполняет недостающие части со значениями по умолчанию. Фактический формат основывается на настройках в Установках системы.

date "8/9/2007, 17:06"
     --result: date "Thursday, August 9, 2007 5:06:00 PM"
date "7/16/70"
     --result: date "Wednesday, July 16, 2070 12:00:00 AM"
date "12:06" -- specifies a time on the current date
     --result: date "Friday, November 9, 2007 12:06:00 PM"
date "Sunday, December 12, 1954 12:06 pm"
     --result: date "Sunday, December 12, 1954 12:06:00 PM"

Доступ следующих утверждений различные свойства даты (результаты зависят в день операторы, выполняется):

set theDate to current date --using current date command
--result: date "Friday, November 9, 2007 11:58:38 AM"
weekday of theDate --result: Friday
day of theDate --result: 9
month of theDate --result: November
year of theDate --result: 2007
time of theDate --result: 43118 (seconds since 12:00:00 AM)
time string of theDate --result: "11:58:38 AM"
date string of theDate --result: "Friday, November 9, 2007"

Если Вы хотите указать время относительно даты, можно сделать так при помощи of, relative to, или in, как показано в следующих примерах.

date "2:30 am" of date "Jan 1, 2008"
    --result: date "Tuesday, January 1, 2008 2:30:00 AM"
date "2:30 am" of date "Sun Jan 27, 2008"
    --result: date "Sunday, January 27, 2008 2:30:00 AM"
date "Nov 19, 2007" relative to date "3PM"
    --result: date "Monday, November 19, 2007 3:00:00 PM"
date "1:30 pm" in date "April 1, 2008"
    --result: date "Tuesday, April 1, 2008 1:30:00 PM"
Специальные замечания

Можно создать a date объект с помощью строки, следующей за форматом даты, указанным в области Formats в Международных предпочтениях. Например, на английском языке США:

set myDate to date "3/4/2008"

При компиляции этого оператора он преобразовывается в следующее:

set myDate to date "Tuesday, March 4, 2008 12:00:00 AM"
файл

Ссылка на файл, папку или объем в файловой системе. A file объект имеет точно те же атрибуты как alias объект, с дополнением, которое это может отослать к не существующему элементу.

Для соответствующей информации посмотрите alias и POSIX file. Для описания формата для пути к файлу посмотрите Псевдонимы и Файлы.

Поддерживаемые приведения

AppleScript поддерживает приведение a file возразите против a text объект или единственный элемент list.

Примеры
set fp to open for access file "Leopard:Users:myUser:NewFile"
close access fp
Обсуждение

Можно создать a file объект, относящийся к не существующей файлу или папке. Например, можно использовать choose file name команда для получения a file объект для файла, который не должен в настоящее время существовать.

целое число

Число без дробной части.

Свойства целочисленных объектов
class
 Доступ: только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение этого свойства всегда integer.


Операторы

Операторы, которые могут иметь integer значения как операнды +, -, *, ÷ (или /), div, mod, ^, =, , >, , <, и .

div оператор всегда возвращается integer оцените как его результат. +, , *, mod, и ^ возвращаемые значения операторов типа integer или real.

Поддерживаемые приведения

AppleScript поддерживает приведение integer оцените единственному элементу list, a real число или a text объект.

Приведение integer к a number ничего не делает:

set myCount to 7 as number
class of myCount --result: integer
Примеры
1
set myResult to 3 - 2
-1
1000
Обсуждение

Самое большое значение (положительный или отрицательный), который может быть выражен как целое число в AppleScript, ±536870911, который равен ± (2^29 – 1). Когда сценарии компилируются, большие целые числа преобразовываются в вещественные числа, выраженные в экспоненциальном представлении.

список

Упорядоченный набор значений. Значения, содержавшиеся в списке, известны как элементы. Каждый элемент может принадлежать любому классу.

Список появляется в сценарии как серия выражений, содержавших в фигурных скобках и разделенных запятыми. Пустой список является списком, содержащим элементы. Это представлено парой пустых фигурных скобок: {}.

Свойства объектов списка
class
 Доступ: только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение этого свойства всегда list.
length
 Доступ: только для чтения
 Класс:целое число
 Указывает его число элементов в списке.
rest
 Доступ: только для чтения
 Класс:список
 Список, содержащий все элементы в списке кроме первого элемента.
reverse
 Доступ: только для чтения
 Класс:список
 Список, содержащий все элементы в списке, но в противоположном порядке.


Элементы объектов списка
item
 

Значение содержится в списке. Каждое значение, содержавшееся в списке, является элементом, и элемент может самостоятельно быть другим списком. Можно обратиться к значениям по их номерам изделия. Например, item 2 of {"soup", 2, "nuts"} целое число 2.

Можно также обратиться к индексируемым элементам списка классом. Например, integer 1 of {"oatmeal", 42, "new"} возвраты 42.


Операторы

Операторы, которые могут иметь значения списка как операнды, &, =, , starts with, ends with, contains, и is contained by.

Для подробных объяснений и примеров того, как операторы AppleScript обрабатывают списки, посмотрите Ссылку Операторов.

Обработанные команды

Можно считать элементы в списке или элементах определенного класса в списке с count команда. Можно также использовать length свойство списка:

count {"a", "b", "c", 1, 2, 3} --result: 6
length of {"a", "b", "c", 1, 2, 3} --result: 6
Поддерживаемые приведения

AppleScript поддерживает приведение списка единственного элемента к любому классу, к которому может быть принужден элемент, если это не часть списка.

AppleScript также поддерживает приведение всего списка к a text возразите, может ли каждый из элементов в списке быть принужден к a text объект, как в следующем примере:

{5, "George", 11.43, "Bill"} as text --result: "5George11.43Bill"

Получающееся text объект связывает все элементы, разделенные текущей стоимостью свойства AppleScript text item delimiters. Эти значения по умолчанию свойства к пустой строке, таким образом, элементы просто связываются. Для получения дополнительной информации посмотрите текстовые разделители элемента.

Отдельные элементы в списке могут иметь любой класс, и AppleScript поддерживает приведение любого значения к списку, содержащему единственный элемент.

Примеры

Следующее утверждение определяет список, содержащий a text объект, целое число и булево значение:

{ "it's", 2, true }

Каждый элемент списка может быть любым допустимым выражением. Следующий список имеет то же значение как предыдущий список:

{ "it" & "'s", 1 + 1, 4 > 3 }

Следующие утверждения работают со списками; отметьте что оператор связи (&) соединения два списка в единственный список:

class of {"this", "is", "a", "list"} --result: list
item 3 of {"this", "is", "a", "list"} --result: "a"
items 2 thru 3 of {"soup", 2, "nuts"} --result: {2, "nuts"}
{"This"} & {"is", "a", "list"} --result: {"This", "is", "a", "list"}

Для больших списков более эффективно использовать a reference to operator при вставке большого количества элементов в список, вместо того, чтобы получить доступ к списку непосредственно. Например, с помощью прямого доступа, следующий сценарий занимает приблизительно 10 секунд для создания списка 10 000 целых чисел (результаты будут варьироваться в зависимости от компьютера и других факторов):

set bigList to {}
set numItems to 10000
set t to (time of (current date)) --Start timing operations
repeat with n from 1 to numItems
    copy n to the end of bigList
    -- DON'T DO THE FOLLOWING--it's even slower!
    -- set bigList to bigList & n
end
set total to (time of (current date)) - t --End timing

Но следующий сценарий, использующий a reference to operator, создает список 100 000 целых чисел (десять раз размер) только за несколько секунд (снова, результаты могут варьироваться):

set bigList to {}
set bigListRef to a reference to bigList
set numItems to 100000
set t to (time of (current date)) --Start timing operations
repeat with n from 1 to numItems
    copy n to the end of bigListRef
end
set total to (time of (current date)) - t --End timing

Точно так же доступ к элементам в ранее создаваемом списке намного быстрее использует a reference to— следующее занимает всего несколько секунд:

set t to (time of (current date)) --Start timing
repeat with n from 1 to numItems -- where numItems = 100,000
    item n of bigListRef
end repeat
set total to (time of (current date)) - t --End timing

Однако доступ к списку непосредственно, даже только для 4 000 элементов, может принять минуту:

set numItems to 4000
set t to (time of (current date)) --Start timing
repeat with n from 1 to numItems
    item n of bigList
end repeat
set total to (time of (current date)) - t --End timing
число

Абстрактный класс, который может представлять integer или a real.

Никогда нет объекта, класс которого number; фактический класс объекта «числа» всегда является одним из более определенных типов, integer или real.

Свойства объектов числа
class
 Доступ: только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение этого свойства всегда также integer или real.


Операторы

Поскольку значения, идентифицированные как значения класса number действительно значения любого класса integer или класс real, доступные операторы являются операторами, описанными в определениях integer или real классы.

Поддерживаемые приведения

Принуждение объекта к number результаты в integer возразите, ли результат приведения integer, или a real возразите, является ли результатом число нецелого числа.

Примеры

Любой допустимый литерал для integer или a real значение является также допустимым литералом для a number значение:

1
2
-1
1000
10.2579432
1.0
1.
Файл POSIX

Псевдокласс, эквивалентный file класс.

Никогда нет объекта, класс которого POSIX file; результатом оценки спецификатора файла POSIX является a file объект. Различие между file и POSIX file объекты находятся в том, как они интерпретируют спецификаторы имени: a POSIX file объект интерпретирует "name" как путь POSIX, в то время как a file объект интерпретирует его как путь HFS.

Для соответствующей информации посмотрите alias и file. Для описания формата для пути POSIX посмотрите Псевдонимы и Файлы.

Свойства объектов файла POSIX

Посмотрите file.


Поддерживаемые приведения

Посмотрите file.

Примеры

Следующий пример просит, чтобы пользователь указал имя файла, запускающееся во временном каталоге /tmp, который является трудным указать использование спецификатора файла:

set fileName to choose file name default location (POSIX file "/tmp")
    -result: dialog starts in /tmp folder
реальный

Числа, которые могут включать дробную часть, такой как 3,14159 и 1.0.

Свойства реальных объектов
class
 Доступ: только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение этого свойства всегда real.


Операторы

Операторы, которые могут иметь real значения как операнды +, -, *, ÷ (или /), div, mod, ^, =, , >, , <, и .

÷ и / операторы всегда возвращаются real значения как их результаты. +, -, *, mod, и ^ операторы возвращаются real значения, если любой из их операндов является a real значение.

Поддерживаемые приведения

AppleScript поддерживает приведение a real оцените integer значение, округляя любую дробную часть.

AppleScript также поддерживает приведение a real оцените единственному элементу list или a text объект. Приведение к тексту использует десятичный разделитель, указанный в Числах в области Formats в Международных предпочтениях.

Примеры
10.2579432
1.0
1.

Даже если нет никакой дробной части, как показано в третьем примере, десятичная точка указывает вещественное число.

Вещественные числа могут также быть записаны с помощью экспоненциального представления. Буква e предшествуется вещественным числом (без прошедших пробелов) и сопровождается целочисленной экспонентой (также без прошедших пробелов). Экспонента может быть или положительной или отрицательной. Получить значение, real число умножается на 10 к питанию, обозначенному экспонентой, как в этих примерах:

1.0e5 --equivalent to 1.0 * 10^5, or 100000
1.0e+5 --same as 1.0e5
1.0e-5 --equivalent to 1.0 * 10^-5, or .00001
Обсуждение

Вещественные числа, которые больше, чем или равны 10 000,0 или меньше чем или равны 0,0001, преобразовываются в экспоненциальное представление, когда компилируются сценарии. Самое большое значение, которое может быть оценено (положительный или отрицательный) 1.797693e+308.

запись

Неупорядоченный набор маркированных свойств. Единственные классы AppleScript, поддерживающие определяемые пользователем свойства, record и script.

Запись появляется в сценарии как ряд определений свойства, содержавших в фигурных скобках и разделенных запятыми. Каждое определение свойства состоит из метки, двоеточия и значения свойства. Например, это - запись с двумя свойствами: {product:"pen", price:2.34}.

Каждое свойство в записи имеет уникальную метку, отличающую его от других свойств в наборе. Значения, присвоенные свойствам, могут принадлежать любому классу. Можно изменить класс свойства просто путем присвоения значения, принадлежащего другому классу.

Свойства рекордных объектов
class
 Доступ: чтение-запись
 Класс:класс
 Идентификатор класса для записи. По умолчанию значение record.
 Если Вы определяете a class свойство явно в записи, значение, которое Вы определяете, заменяет неявное class значение. В следующем примере класс установлен в integer:
 set myRecord to {class:integer, min:1, max:10}
 class of myRecord --result: integer
length
 Доступ: только для чтения
 Класс:целое число
 Указывает число свойств в записи.


Операторы

Операторы, которые могут иметь записи как операнды, &, =, , contains, и is contained by.

Для подробных объяснений и примеров того, как операторы AppleScript обрабатывают записи, посмотрите Ссылку Операторов.

Обработанные команды

Можно считать свойства в записи с count команда:

count {name:"Robin", mileage:400} --result: 2
Поддерживаемые приведения

AppleScript поддерживает приведение записей на списки; однако, все метки потеряны в приведении, и получающийся список не может быть принужден назад к записи.

Примеры

Следующий пример показывает, как изменить значение свойства в записи:

set myRecord to {product:"pen", price:2.34}
product of myRecord -- result: "pen"
 
set product of myRecord to "pencil"
product of myRecord -- result: "pencil"

AppleScript оценивает выражения в записи перед использованием записи в других выражениях. Например, следующие две записи эквивалентны:

{ name:"Steve", height:76 - 1.5, weight:150 + 20 }
{ name:"Steve", height:74.5, weight:170 }

Вы не можете обратиться к свойствам в записях числовым индексом. Например, следующий объектный спецификатор, использующий форму ссылки на указатель на записи, не допустим.

item 2 of { name:"Rollie", IQ:186, city:"Unknown" } --result: error

Можно получить доступ к свойству длины записи для подсчета свойств, которые оно содержит:

length of {name:"Chris", mileage:1957, city:"Kalamazoo"} --result: 3

Можно получить то же значение с count команда:

count {name:"Chris", mileage:1957, city:"Kalamazoo"} --result: 3
Обсуждение

После определения записи Вы не можете добавить дополнительные свойства к ней. Можно, однако, связать записи. Для получения дополнительной информации посмотрите & (concatenation).

ссылка

Объект, инкапсулирующий объектный спецификатор.

Результат a reference to оператор является a reference в объект и объектные спецификаторы, возвращенные из команд приложения, неявно превращаются reference объекты.

A reference возразите «обертывает» объектный спецификатор. Если Вы предназначаетесь для a reference объект с get команда, команда возвращается reference возразите себе. Если Вы спрашиваете a reference объект для contents свойство, это возвращает вложенный объектный спецификатор. Все другие запросы к a reference объект передается его вложенному объектному спецификатору. Например, если Вы просите class из a reference объект, Вы добираетесь class из объекта, указанного его объектным спецификатором.

Для соответствующей информации посмотрите Объектные Спецификаторы.

Свойства ссылочных объектов

Кроме contents свойство, все другие запросы свойства передаются к вложенному объектному спецификатору, таким образом, ссылочный объект, кажется, имеет все свойства ссылочного объекта.

contents
 Доступ: зависит от ссылочного объекта или объектов
 Класс:зависит от ссылочного объекта или объектов
 Вложенный объектный спецификатор.


Операторы

Все операторы передаются вложенному объектному спецификатору, таким образом, ссылочный объект, кажется, поддерживает всех операторов ссылочного объекта.

a reference to оператор возвращает ссылочный объект как его результат.

Поддерживаемые приведения

Все приведения передаются вложенному объектному спецификатору, таким образом, ссылочный объект, кажется, поддерживает все приведения ссылочного объекта.

Примеры

Ссылочные объекты чаще всего используются для указания объектов приложения. Следующий пример создает ссылку на окно в приложении TextEdit:

set myWindow to a ref to window "top.rtf" of application "TextEdit"
--result: window "top.rtf" of application "TextEdit"

В последующих операторах сценария можно использовать переменную myWindow вместо долгосрочной перспективы window "top.rtf" of application "TextEdit".

Поскольку все свойство запрашивает кроме contents of передаются его вложенному спецификатору, reference объект, кажется, имеет все свойства ссылочного объекта. Например, оба class of операторы в следующем возврате в качестве примера window:

set myRef to a reference to window 1
class of contents of myRef  -- explicit dereference using "contents of"
class of myRef  -- implicit dereference

Для дополнительных примеров посмотрите a reference to оператор.

Цвет RGB

Определение типа для списка с тремя элементами integer значения, от 0 до 65 535, которые указывают красные, зеленые, и синие компоненты цвета.

Иначе, ведет себя точно как a list объект.

Примеры
set whiteColor to {65535, 65535, 65535} -- white
set yellowColor to {65535, 65535, 0} -- yellow
yellowColor as string --result: "65535655350"
set redColor to {65535, 0, 0} -- red
set userColor to choose color default color redColor
сценарий

Набор объявлений AppleScript и операторов, которые могут быть выполнены как группа.

Синтаксис для a script объект описан в Определении Объектов сценария.

Свойства объектов сценария
class
 Доступ: только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение этого свойства всегда script.
name
 Доступ:только для чтения
 Класс:текст
 Имя объекта сценария, неявно определенного в AppleScript 2.3 и позже. Для сценариев верхнего уровня это - имя файла, сценарий сохраняется в, если явно не определено иначе с помощью свойства, или, для сценария верхнего уровня, сохраненного как пакет сценария, с помощью ключа Info.plist CFBundleName. Секция Содержания Пакета Редактора сценариев включает поле «Name» для установки этого значения. Для других объектов сценария это - имя, сценарий был определен с помощью как текст.
id
 Доступ:только для чтения
 Класс:текст
 Уникальный идентификатор объекта сценария, неявно определенного в AppleScript 2.3 и позже. Его значение missing value если явно не определено с помощью свойства, или, для сценария верхнего уровня, сохраненного как пакет сценария, с помощью ключа Info.plist CFBundleIdentifier. Секция Содержания Пакета Редактора сценариев включает поле «Identifier» для установки этого значения.
version
 Доступ:только для чтения
 Класс:текст
 Версия объекта сценария, неявно определенного в AppleScript 2.3 и позже. Для сценариев верхнего уровня его значение "1.0" если явно не определено с помощью свойства, или, для пакета сценария, с помощью ключа Info.plist CFBundleShortVersionString. Секция Содержания Пакета Редактора сценариев включает поле «Short Version» для установки этого значения. Для других объектов сценария его значение по умолчанию missing value. В то время как версия может напомнить число, это имеет фактически тип text. Для лучших результатов сравните использование строк версии considering numeric strings.


Обработанные команды

Можно скопировать a script объект с copy команда или создает ссылку на него с set команда.

Поддерживаемые приведения

AppleScript поддерживает приведение a script возразите против единственного элемента list.

Примеры

Следующий пример показывает простое script возразите, что выводит на экран диалоговое окно. Это сопровождается оператором, показывающим, как выполнить сценарий:

script helloScript
    display dialog "Hello."
end script
 
run helloScript -- invoke the script
Обсуждение

A script объект может содержать другой script объекты, названные дочерними сценариями, и, могут иметь родительский объект. Для получения дополнительной информации, включая более подробные примеры, посмотрите Объекты сценария.

name, id, и version свойства автоматически определяются в Индивидуалистах OS X v10.9 (AppleScript 2.3) и позже и используются для идентификации сценариев, используемых в качестве библиотек, как описано в Объектах сценария.

текст

Упорядоченный ряд символов Unicode.

Запускаясь в AppleScript 2.0, AppleScript полностью основан на Unicode. Больше нет различия между текстом не-Unicode и Unicode. Комментарии и текстовые константы в сценариях могут содержать любые символы Unicode, и вся обработка текста сделана в Unicode, таким образом, все символы сохраняются правильно независимо от предпочтений языка пользователя.

Например, следующий сценарий работает правильно в AppleScript 2.0, где это не имело бы в предыдущих версиях:

set jp to "日本語"
set ru to "Русский"
jp & " and " & ru -- returns "日本語 and Русский"

Для получения информации о совместимости с предыдущими версиями AppleScript, включая использование string и Unicode text как синонимы для text, посмотрите раздел Special Considerations.

Свойства текстовых объектов
class
 Доступ: только для чтения
 Класс:класс
 Идентификатор класса для объекта. Значение этого свойства всегда text.
id
 Доступ: только для чтения
 Класс:integer или list из целого числа
 Значение (или список значений) представление кодовой точки Unicode (или кодовых точек) для символа (или символов) в text объект. (Кодовая точка Unicode является уникальным числом, представляющим символ и позволяющим ему быть представленным абстрактным способом, независимым от того, как он представляется. Символ в a text объект может быть составлен из одной или более кодовых точек.)
 Это свойство, добавленное в AppleScript 2.0, может также использоваться в качестве адреса, позволяющего отображаться между значениями кодовой точки Unicode и символами в тех кодовых точках. Например, id of "A" возвраты 65, и character id 65 возвраты "A".
 ID текста дольше, чем одна кодовая точка является списком целых чисел, и наоборот: например, id of "hello" возвраты {104, 101, 108, 108, 111}, и string id {104, 101, 108, 108, 111} возвраты "hello". (Из-за ошибки, text id ... не работает; необходимо использовать один из string, Unicode text, или character.)
 Это использование id свойство, устаревшее более старое ASCII character и ASCII number команды, с тех пор, в отличие от тех, они покрывают полный диапазон символов Unicode и возвратят те же результаты независимо от предпочтений языка пользователя.
length
 Доступ: только для чтения
 Класс:целое число
 Число символов в тексте.
quoted form
 Доступ: только для чтения
 Класс:текст
 Представление текста, который безопасен от дальнейшей интерпретации оболочкой, независимо от того каково ее содержание. В основном полезный для передачи текстовой строки к do shell script команда.


Элементы текстовых объектов

A text объект может содержать эти элементы (который может вести себя по-другому, чем подобные элементы, используемые в приложениях):

character
 Укажите: Произвольный, каждый, индекс, середина, диапазон
 

Один или более символов Unicode, составляющих текст.

Запускаясь в AppleScript 2.0, элементах text число объектов кластер комбинированного символа (также известный как кластер графемы Unicode) как отдельный символ. (Это касается функции Unicode, который вряд ли окажет влияние на большинство сценаристов: некоторые «символы» могут быть представлены или как единственный объект или как основной символ плюс ряд объединения меток.

Например, «В» может быть закодирован как любой U+00E9 (LATIN SMALL LETTER E WITH ACUTE) или как U+0065 (LATIN SMALL LETTER E), U+0301 (COMBINING ACUTE ACCENT). Тем не менее, AppleScript 2.0 рассчитает и как один символ, где более старые версии считали основной символ и комбинирующий метку отдельно.

paragraph
 Укажите: Произвольный, каждый, индекс, середина, диапазон
 

Серия символов, начинающихся сразу или после первого символа после конца предыдущего абзаца или после начало текста и окончания любым символ возврата каретки (\r), символ перевода строки (\n), пара возврата/перевода строки (\r\n), или конец текста. Символ «разделителя абзацев» Unicode (U+2029) не поддерживается.

Поскольку paragraph элементы разделяются возвратом каретки, переводом строки или возвратом каретки / пара перевода строки, текст, заканчивающийся концом абзаца, указывает следующий (пустой) абзац. Например, "this\nthat\n" имеет три абзаца, не два: «это», «что», и «» (пустой абзац после запаздывающего перевода строки).

Точно так же два конца абзаца подряд указывают пустой абзац между ними:

paragraphs of "this\n\nthat" --result: {"this", "", "that"}

text
 Укажите: Каждый, имя
 

Весь текст, содержавшийся в text объект, включая пробелы, вкладки и все другие символы.

Можно использовать text получить доступ к непрерывным символам (но видеть также раздел Discussion ниже):

text 1 thru 5 of "Bring me the mouse." --result: "Bring"

word
 Укажите: Произвольный, каждый, индекс, середина, диапазон
 

Непрерывная серия символов, с элементами слова, проанализированными согласно правилам разрыва слова, установлена в Международной предпочтительной области.

Поскольку правила для парсинга слов таким образом являются объектом контроля за работой пользователей, Ваши сценарии не должны рассчитывать на детерминированный текстовый парсинг слов.


Операторы

Операторы, которые могут иметь text объекты как операнды &, =, , >, , <,, starts with, ends with, contains, is contained by, и as.

В текстовых сравнениях можно указать, нужно ли пробел рассмотреть или проигнорировать. Для получения дополнительной информации посмотрите “considering and ignoring Statements”.

Для подробных объяснений и примеров того, как операторы AppleScript обрабатывают text объекты, посмотрите Ссылку Операторов.

Символы специальной строки

Наклонная черта влево (\) и двойная кавычка (") символы имеют особое значение в тексте. AppleScript включает текст в символы двойной кавычки и использует символ наклонной черты влево для представления возврата (\r), вкладка (\t), и перевод строки (\n) символы (описанный ниже). Таким образом, если Вы хотите включать фактическую наклонную черту влево или символ двойной кавычки в a text объект, необходимо использовать эквивалентную две последовательности символов. Как удобство, AppleScript также обеспечивает постоянный текст quote, который имеет значение \".

Табличные 6-1  Специальные символы в тексте

Символ

Вставить в текст

Символ Backslash (\)

\\

Двойная кавычка (")

\"

quote (постоянный текст)

Объявить a text объект, который похож на это, когда выведено на экран:

He said "Use the '\' character."

можно использовать следующее:

"He said \"Use the '\\' character.\""

Пробел относится к текстовым символам, выводящим на экран как вертикальное или горизонтальное пространство. AppleScript определяет константы пробела return, linefeed, space, и tab представлять, соответственно, символ возврата, символ перевода строки, пробел и символ табуляции. ( linefeed постоянный стал доступным в AppleScript 2.0.)

Несмотря на то, что Вы эффективно используете эти значения в качестве текстовых констант, они фактически определяются как свойства глобальной константы AppleScript.

Табличные 6-2  константы Пробела

Постоянный

Значение

пространство

" "

вкладка

«\t»

возвратиться

«\r»

перевод строки

"\n”

Для ввода пробела в строку можно просто ввести символ — т.е. можно нажать клавишу «Пробел» для вставки пространства, клавиша Tab для вставки символа табуляции или клавиши Return для вставки возврата. В последнем случае строка появится на двух строках в сценарии, как следующее:

display dialog "Hello" & "
" & "Goodbye"

Когда Вы выполняете этот сценарий, «Привет» появляется выше «До свидания» в диалоговом окне.

Можно также ввести вкладку, возвратиться, или перевод строки с эквивалентными двумя последовательностями символов. Когда a text объект, содержащий любую из двух последовательностей символов, выведен на экран пользователю, последовательности преобразовываются. Например, если Вы используете следующий text объект в a display dialog команда:

display dialog "item 1\t1\ritem 2\t2"

это выведено на экран как это (если Вы не включаете “Вкладки Escape и разрывы строки в строках” на вкладке Editing предпочтений Редактора сценариев):

item 1      1
item 2      2

Для использования констант пробела Вы используете оператора связи для присоединения многократный text объекты вместе, как в следующем примере:

"Year" & tab & tab & "Units sold" & return & "2006" & tab ¬
    & tab & "300" & return & "2007" & tab & tab & "453"

Когда передано display dialog, этот текст выведен на экран следующим образом:

Year       Units sold
2006            300
2007            453
Поддерживаемые приведения

AppleScript поддерживает приведение text возразите против единственного элемента list. Если a text объект представляет надлежащее число, AppleScript поддерживает приведение text возразите против целого числа или вещественного числа.

Примеры

Можно определить a text объект в сценарии символами сопроводительного текста с кавычками, как в этих примерах:

set theObject to "some text"
set clientName to "Mr. Smith"
display dialog "This is a text object."

Предположим, что Вы используете следующее утверждение для получения a text объект называют docText это содержит весь текст, извлеченный из определенного документа:

set docText to text of document "MyFavoriteFish.rtf" of application "TextEdit"

Следующие утверждения показывают различные способы работать с text объект docText:

class of docText --result: text
first character of docText --result: a character
every paragraph of docText --result: a list containing all paragraphs
paragraphs 2 thru 3 of docText --result: a list containing two paragraphs

Следующий пример подготавливает a text возразите для использования с display dialog команда. Это использует quote постоянный для вставки \" в текст. Когда этот текст выведен на экран в диалоговом окне (выше поля ввода текста), это похоже на это: Enter the text in quotes ("text in quotes"):

set promptString to "Enter the text in quotes (" & quote ¬
    & "text in quotes" & quote & "): "
display dialog promptString default answer ""

Следующий пример получает путь POSIX к выбранной папке и использует quoted form свойство для обеспечения корректного заключения в кавычки получившей строки для использования с командами оболочки:

set folderName to quoted form of POSIX path of (choose folder)

Предположим, что Вы выбираете названную папку iWork '08 в Вашем Applications папка. Предыдущая выписка возвратила бы следующий результат, должным образом обрабатывающий встроенную одинарную кавычку и пробелы на имя папки:

"'/Applications/iWork '\\''08/'"
Обсуждение

Получить непрерывный диапазон символов в a text объект, используйте text элемент. Например, значение следующего утверждения text объект "y thi":

get text 3 thru 7 of "Try this at home"
--result: "y thi"

Результатом подобного оператора с помощью элемента символа вместо текстового элемента является список:

get characters 3 thru 7 of "Try this at home"
--result: {"y", " ", "t", "h", "i"}

Вы не можете установить значение элемента a text объект. Например, при попытке изменить значение первого символа текстового объекта myName как показано затем Вы получите ошибку:

set myName to "Boris"
set character 1 of myName to "D"
--result: error: you cannot set the values of elements of text objects

Однако можно достигнуть того же результата путем получения последних четырех символов и конкатенации их с «D»:

set myName to "boris"
set myName to "D" & (get text 2 through 5 of myName)
--result: "Doris"

Этот пример фактически не изменяет существующее text объект — это устанавливает переменную myName относиться к новому text объект с различным значением.

Специальные замечания

Для совместимости с версиями до AppleScript 2.0, string и Unicode text все еще определяются, но считаются синонимами для text. Например, все три из этих операторов имеют тот же эффект:

someObject as text
someObject as string
someObject as Unicode text

Кроме того, text, string, и Unicode text все выдержит сравнение как равный. Например, class of "foo" is string true, даже при том, что class of "foo" возвраты text. Однако для приложений все еще возможно различить эти три различных типов, даже при том, что сам AppleScript не делает.

Начиная с AppleScript 2.0 нет никакой информации о стилях, сохраненной text объекты.

Поскольку весь текст является текстом Unicode, сценарии теперь всегда получают текстовое поведение Unicode. Это может отличаться от прежнего string поведение для некоторых зависимых от локали операций, в частности word элементы. Для получения того же поведения с 2,0 и пред2.0 добавьте явное as Unicode text приведение, например, words of (someText as Unicode text).

Поскольку text item delimiters (описанный в текстовых разделителях элемента) уважение considering и ignoring атрибуты в AppleScript 2.0, разделители нечувствительны к регистру по умолчанию. Раньше, они были всегда чувствительны к регистру. Для осуществления предыдущего поведения добавьте явное considering case оператор.

Поскольку сценарии AppleScript 2.0 хранят весь текст как Unicode, любое текстовое количество констант как использование прежнего Unicode text класс, который будет работать с любой версией AppleScript назад к версии 1.3. Сценарий, содержащий символы только для Unicode, такие как арабский или тайский язык, будет работать, но не будет правильно доступными для редактирования версиями использования до AppleScript 2.0: символы только для Unicode будут потеряны.

типы модуля

Используемый для работы с измерениями длины, области, кубического и жидкого объема, массы и температуры.

Классы типа модуля поддерживают простые объекты, не содержащие другие значения и имеющие только единственное свойство, class свойство.

Свойства текстовых объектов модуля
class
 Доступ:только для чтения
 Класс:(варьируется; упомянутый ниже)
 Идентификатор класса для объекта. Это доступные классы:
 Длина: centimetres, centimeters, feet, inches, kilometres, kilometers, metres, meters, miles, yards
 Область: square feet, square kilometres, square kilometers, square metres, square meters, square miles, square yards
 Кубический объем: cubic centimetres, cubic centimeters, cubic feet, cubic inches, cubic metres, cubic meters, cubic yards
 Жидкий объем: gallons, litres, liters, quarts
 Вес: grams, kilograms, ounces, pounds
 Температура: degrees Celsius, degrees Fahrenheit, degrees Kelvin


Операторы

Ни один. Необходимо явно принудить тип модуля к типу числа, прежде чем можно будет выполнить операции с ним.

Поддерживаемые приведения

Можно принудить текстовый объект модуля к integer, единственный элемент list, real, или text. Можно также принудить между типами модуля в той же категории, такой как inches к kilometers (длина) или gallons к liters (жидкий объем). Как Вы ожидали бы, нет никакого приведения между категориями, такой как от gallons к degrees Centigrade.

Примеры

Следующие утверждения вычисляют область круга с радиусом 7 ярдов, затем принуждают область к квадратным футам:

set circleArea to (pi * 7 * 7) as square yards --result: square yards 153.9380400259
circleArea as square feet --result: square feet 1385.4423602331

Следующие утверждения устанавливают переменную в значение 5,0 квадратных километров, затем принуждают его к различным другим единицам площади:

set theArea to 5.0 as square kilometers --result: square kilometers 5.0
theArea as square miles --result: square miles 1.930510792712
theArea as square meters --result: square meters 5.0E+6

Однако Вы не можете принудить измерение области к типу модуля в различной категории:

set theArea to 5.0 as square meters --result: square meters 5.0
theArea as cubic meters --result: error
theArea as degrees Celsius --result: error

Следующие утверждения демонстрируют приведение типа модуля к a text объект:

set myPounds to 2.2 as pounds --result: pounds 2.2
set textValue to myPounds as text --result: "2.2"