Обходимое
Стд::Обходимое<ТипЭлемента>
ТипЭлемента: тип обходимых элементов.
Объект предоставляет возможно сть обхода своих элементов в цикле для из
.
Возможность повторного обхода не гарантируется.
Сравнение ссылочное
Иерархия типа
Базовые типы: Объект
Дочерние типы: ЧитаемаяКоллекция, ЧитаемоеСоответствие
Методы
ВМассив
ВМассив(): Массив<ТипЭлемента>
ВСоответствие
ВСоответствие<ТипКлюча, ТипЗначения>(
ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча,
ИзвлекательЗначения: (ТипЭлемента)->ТипЗначения
): Соответствие<ТипКлюча, ТипЗначения>
ТипЗначения: тип вычисляемого значения.
Преобразует Обходимое в Соответствие, используя заданные функции для вычисления ключа и значения.
Примеры
знч Сотрудники: Массив<Сотрудник> = ...
// [{Ид: 13, Имя: Петя}, {Ид: 5, Имя: Вася}]
знч ИдИмя = Сотрудники.ВСоответствие(Элемент -> Элемент.Ид, Элемент -> Элемент.Имя) // Соответствие<Число, Строка>
// { 13 : "Петя",
// 5 : "Вася"}
ВСоответствиеСКлючами
ВСоответствиеСКлючами<ТипКлюча>(ИзвлекательКлюча: (ТипЭлемента)->ТипКлюча): Соответствие<ТипКлюча, ТипЭлемента>
Преобразует Обходимое в Соответствие, используя заданную функцию для вычисления ключа и элемент обходимого в качестве значения.
Примеры
знч Сотрудники: Массив<Сотрудник> = ...
// [{Ид: 13, Имя: Петя, Возраст: 24},
// {Ид: 5, Имя: Вася, Возраст: 30}]
знч СотрудникПоИд = Сотрудники.ВСоответствиеСКлючами(Элемент -> Элемент.Ид) // Соответствие<Число, Сотрудник>
// {13 : {Ид: 13, Имя: Петя, Возраст: 24},
// 5 : {Ид: 5, Имя: Вася, Возраст: 30}}
ВСоответствиеСоЗначениями
ВСоответствиеСоЗначениями<ТипЗначения>(ИзвлекательЗначения: (ТипЭлемента)->ТипЗначения): Соответствие<ТипЭлемента, ТипЗначения>
Преобразует Обходимое в Соответствие, используя заданную функцию для вычисления значения и элемент обходимого в качестве ключа.
Примеры
знч Идентификаторы: Массив<Число> = [13, 5]
знч СотрудникПоИд = Идентификаторы.ВСоответствиеСоЗначениями(Ид -> ПолучитьСотрудникаПоИд(Ид)) // Соответствие<Число, Сотрудник>
// {13 : {Ид: 13, Имя: Петя, Возраст: 24},
// 5 : {Ид: 5, Имя: Вася, Возраст: 30}}
ВоМножество
ВоМножество(): Множество<ТипЭлемента>
Примеры
знч Числа = [1, 3, 5, 10, 12, 1, 3, 5]
знч МножествоЧисел = Числа.ВоМножество() // {1, 3, 5, 10, 12}
ВсеСоответствуют
Возвращает Истина, если все элементы удовлетворяют условию в предикате. На сервере это операция сокращенного вычисления. Это значит, что вызванные ранее в цепочке вызовов операции, могут быть вызваны не для каждого элемента.Примеры
знч Сотрудники: Массив<Сотрудник> = ...
// [{Ид: 13, Имя: Петя, Отдел: Администрация},
// {Ид: 5, Имя: Вася, Отдел: Администрация},
// {Ид: 6, Имя: Иван, Отдел: Разработка}]
Сотрудники.ВсеСоответствуют(Элемент -> Элемент.Отдел == "Разработка") // Ложь
// пример сокращенного вычисления
знч Числа = [1, 2, 3, 4, 5]
знч КвадратыЧисел = <Число>[]
знч ВсеЧетные = Числа.ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)).ВсеСоответствуют(а -> а % 2 == 0) // Ложь
// КвадратыЧисел = [1]
ГруппироватьПо
ГруппироватьПо<ТипКлюча>(Извлекатель: (ТипЭлемента)->ТипКлюча): Соответствие<ТипКлюча, Массив<ТипЭлемента>>
Группирует элементы в соответствии с заданной функцией вычисления ключа. Элементы с одинаковым ключом объединяются в Массив.
Извлекатель
- функция, применяющаяся к каждому элементу, возвращающая характеристику, по которой будут группироваться элементы.
Примеры
знч Сотрудники: Массив<Сотрудник> = ...
// [{Ид: 13, Имя: Петя, Отдел: Администрация},
// {Ид: 5, Имя: Вася, Отдел: Администрация},
// {Ид: 6, Имя: Иван, Отдел: Разработка}]
знч ОтделыИСотрудники: Соответствие<Строка, Массив<Сотрудник>> = Сотрудники.ГруппироватьПо(Элемент -> Элемент.Отдел)
// {
// Администрация: [{Ид: 13, Имя: Петя, Отдел: Администрация},
// {Ид: 5, Имя: Вася, Отдел: Администрация}],
// Разработка: [{Ид: 6, Имя: Иван, Отдел: Разработка}]
// }
ДляКаждого
ДляКаждого(Действие: (ТипЭлемента)->ничто): Массив<ТипЭлемента>
Примеры
знч Сотрудники: Массив<Сотрудник> = ...
// [{Ид: 13, Имя: Петя}, {Ид: 5, Имя: Вася}]
Сотрудники.ДляКаждого(Элемент -> Консоль.Записать(Элемент. Ид + " - " + Элемент.Имя))
// 13 - Петя
// 5 - Вася
// В примере ниже действие 'а -> КвадратыЧисел.Добавить(а * а)'
// на сервере будет вызвано только для первого элемента
знч Числа = [1, 3, 5]
знч КвадратыЧисел = <Число>[]
знч Первое = Числа.ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)).ПервыйИлиУмолчание() // 1
// КвадратыЧисел = [1]
Единственный
Единственный(): ТипЭлемента
Исключения
ИсключениеНедопустимоеСостояние - если нет элементов или элементов больше одного.
ЕдинственныйИлиНеопределено
Един ственныйИлиНеопределено(): ТипЭлемента?
Неопределено
.
Вызов приводит к частичному обходу, если реализация не поддерживает повторный обход - вызвать можно только один раз.
Исключения
ИсключениеНедопустимоеСостояние - если элементов больше одного.
Прошлые имена: ЕдинственныйИлиУмолчание
ЕдинственныйИлиУмолчание
ЕдинственныйИлиУмолчание(Умолчание: ТипЭлемента): ТипЭлемента
Единственный ИлиУмолчание<ТипУмолчания>(ВычислительУмолчания: ()->ТипЭлемента|ТипУмолчания): ТипЭлемента|ТипУмолчания
Возвращает единственный содержащийся элемент или значение Умолчание
, если элементов нет.
Вызов приводит к частичному обходу, если реализация не поддерживает повторный обход - вызвать можно только один раз.
Исключения
ИсключениеНедопустимоеСостояние - если элементов больше одного.
ЕдинственныйИлиУмолчание
ЕдинственныйИлиУмолчание<ТипУмолчания>(ВычислительУмолчания: ()->ТипЭлемента|ТипУмолчания): ТипЭлемента|ТипУмолчания
Перегрузка:
ЕдинственныйИлиУмолчание(Умолчание: ТипЭлемента): ТипЭлемента
Возвращает единственный содержащийся элемент или значение, вычисленное с помощью ВычислительУмолчания
, если элементов нет.
Вызов приводит к частичному обходу, если реализация не поддерживает повторный обход - вызвать можно только один раз.
Исключения
ИсключениеНедопустимоеСостояние - если элементов больше одного.
ЕстьСоответствия
Возвращает Истина, если хотя бы один из элементов удовлетворяет условию в предикате. На сервере это операция сокращенного вычисления. Это значит, что вызванные ранее в цепочке вызовов операции, могут быть вызваны не для каждого элемента.Примеры
знч Сотрудники: Массив<Сотрудник> = ...
// [{Ид: 13, Имя: Петя, Отдел: Администрация},
// {Ид: 5, Имя: Вася, Отдел: Администрация},
// {Ид: 6, Имя: Иван, Отдел: Разработка}]
Сотрудники.ЕстьСоответствия(Элемент -> Элемент.Отдел == Администрация) // Истина
// пример сокращенного вычисления
знч Числа = [1, 2, 3, 4, 5]
знч КвадратыЧисел = <Число>[]
знч ЕстьЧетные = Числа.ДляКаждого(а -> КвадратыЧисел.Добавить(а * а)).ЕстьСоответствия(а -> а % 2 == 0) // Истина
// КвадратыЧисел = [1, 4]
КакПоследовательность
КакПоследовательность(): Последовательность<ТипЭлемента>
Максимум
<ItemType это Сравнимое<ТипЭлемента>> Максимум(): ТипЭлемента