Методы в выражениях

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

Примеры использования методов:

  • $МояТекстоваяСтрока.Length – метод Length используется с текстовыми строками, списками, словарями и некоторыми другими составными типами данных. При использовании с текстовыми строками метод Length возвращает их длину в символах (количество символов, из которых состоит строка), а при использовании с составными типами данных (списками, словарями) – возвращает количество их элементов. Метод Length не требует указания аргументов и поэтому используется без скобок.
  • $MyString.Replace(«text», «newtext») – метод Replace используется с текстовыми строками, ищет в строке все вхождения текста, заданного в первом аргументе, и меняет их на текст, заданный во втором аргументе. Как и с функциями, в качестве аргументов можно использовать не только константы, но и другие переменные, а также выражения с ними. Метод Replace не изменяет исходную строку, а возвращает результат своего выполнения. То есть его, например, можно использовать в блоке Assign, чтобы присвоить возвращенную в результате работы этого метода строку новую другой переменной.

Методы могут быть использованы друг за другом «цепочкой». Например, следующее выражение корректно, и его результатом будет длина новой строки, полученной после замены всех вхождений «text» на «newtext» в строке, хранящейся в переменной $MyString:

$MyString.Replace(«text», «newtext»).Length

Некоторые методы дают доступ к отдельным элементам составных объектов, и тогда их называют «свойствами». Например, если вы используете блок Get POP3 Mail Messages для получения новых email-сообщений, полученные сообщения будут сохранены в переменной, указанной в свойстве Result. Допустим, там указана переменная $Result. Тип этой переменной – список объектов типа MailMessage. Допустим, вы хотите получить доступ к адресу отправителя первого из полученных сообщений. Так как $Result в данном случае – это список, можно получить доступ к первому его элементу через указание индекса в квадратных скобках: $Result[0]. Не забывайте, что индексы всех состаных элементов начинаются с нуля, а не с единицы. Так мы получим доступ к составному объекту MailMessage, в котором хранится вся информация о каждом сообщении в отдельности. Справочник в нижней части окна Редактировать выражение нам подсказывает, что адрес отправителя сообщения содержится в свойстве From и его подсвойстве Address. Таким образом, чтобы получить доступ к адресу отправителя в первом полученном сообщении, нам нужно воспользоваться вот таким выражением:

$Result[0].From. Address

Результат вычисления этого выражения будет представлять собой текстовую строку. Её можно затем вывести на экран, записать в файл, в ячейку таблицы и т.д. Вспомнив о том, что методы и свойства можно «нанизывать» друг на друга, мы можем узнать длину адреса отправителя письма в символах с помощью вот такого выражения:

$Result[0].From. Address.Length

Или же мы можем заменить в адресе отправителя письма символ «@» на строку «-at-» с помощью вот такого выражения:

$Result[0].From. Address.Length.Replace(«@», «-at-«)

Как и в случае с функциями, список всех доступных методов, их аргументов и примеры их использования вы можете посмотреть в справочнике окна Редактировать выражение. Там же вы можете найти примеры формирования аргументов некоторых специальных функций. Например, в разделе «DataTime Formats» содержатся примеры аргументов для функций и блоков форматирования даты и времени. И там же вы сможете найти примеры разложения на отдельные свойства составных объектов. Например, все свойства упомянутого выше объекта MailMessage содержатся в разделе «Mail Message examples» справочника.