forked from sfaqer/collectionos
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request sfaqer#5 from sfaqer/feature/queue
Реализация очередей и мелкие изменения
- Loading branch information
Showing
62 changed files
with
7,135 additions
and
1,700 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
## Итератор | ||
|
||
### Наследует: [ЧитающийИтератор](ЧитающийИтератор.md) | ||
|
||
### Удалить | ||
|
||
```bsl | ||
// Удаляет элемент на который указывает итератор | ||
// | ||
Процедура Удалить() | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
## СписокИтератор | ||
|
||
### Наследует: [ЧитающийСписокИтератор](ЧитающийСписокИтератор.md), [Итератор](Итератор.md) | ||
|
||
### Установить | ||
|
||
```bsl | ||
// Заменяет значение на которое указывает итератор | ||
// | ||
// Параметры: | ||
// Элемент - Произвольный - Устанавливаемый элемент | ||
// | ||
Процедура Установить(Элемент) | ||
``` | ||
|
||
### Вставить | ||
|
||
```bsl | ||
// Вставляет элемент по месту указания итератора | ||
// | ||
// Параметры: | ||
// Элемент - Произвольный - вставляемый элемент | ||
// | ||
Процедура Вставить(Элемент) | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
## ЧитающийИтератор | ||
|
||
### ЕстьСледующий | ||
|
||
```bsl | ||
// Проверяет что есть следующий элемент коллекции | ||
// | ||
// Возвращаемое значение: | ||
// Булево - Истина, если есть следующий элемент коллекции | ||
// | ||
Функция ЕстьСледующий() | ||
``` | ||
|
||
### Следующий | ||
|
||
```bsl | ||
// Возвращает следующий элемент коллекции | ||
// | ||
// Возвращаемое значение: | ||
// Произвольный - следующий элемент коллекции | ||
// | ||
Функция Следующий() | ||
``` | ||
|
||
### ДляКаждогоОставшегося | ||
|
||
```bsl | ||
// Выполняет переданный алгоритм для каждого элемента коллекции | ||
// начиная с того на который указывает итератор | ||
// | ||
// Параметры: | ||
// Действие - Действие - Делегат на процедуру с одним параметром | ||
// которая принимает элемент коллекции | ||
// - Строка - Лямбда выражение с одним параметром | ||
// которая принимает элемент коллекции | ||
// | ||
// Пример: | ||
// Итератор.ДляКаждогоОставшегося(Элемент -> Сообщить(Элемент)); | ||
// | ||
Процедура ДляКаждогоОставшегося(Действие) | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
## ЧитающийСписокИтератор | ||
|
||
### Наследует: [ЧитающийИтератор](ЧитающийИтератор.md) | ||
|
||
### ЕстьПредыдущий | ||
|
||
```bsl | ||
// Проверяет что есть предыдущий элемент коллекции | ||
// | ||
// Возвращаемое значение: | ||
// Булево - Истина, если есть предыдущий элемент коллекции | ||
// | ||
Функция ЕстьПредыдущий() | ||
``` | ||
|
||
### Предыдущий | ||
|
||
```bsl | ||
// Возвращает предыдущий элемент коллекции | ||
// | ||
// Возвращаемое значение: | ||
// Произвольный - предыдущий элемент коллекции | ||
// | ||
Функция Предыдущий() | ||
``` | ||
|
||
### СледующийИндекс | ||
|
||
```bsl | ||
// Возвращает индекс на который указывает итератор | ||
// | ||
// Возвращаемое значение: | ||
// Число - Индекс на который указывает итератор | ||
// | ||
Функция СледующийИндекс() | ||
``` | ||
|
||
### ПредыдущийИндекс | ||
|
||
```bsl | ||
// Возвращает предыдущий индекс от того на который указывает итератор | ||
// | ||
// Возвращаемое значение: | ||
// Число - Предыдущий индекс от того на который указывает итератор | ||
// | ||
Функция ПредыдущийИндекс() | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,221 @@ | ||
## Карта | ||
|
||
### Наследует: [ЧитаемаяКарта](ЧитаемаяКарта.md) | ||
|
||
### Очистить | ||
|
||
```bsl | ||
// Удаляет все элементы карты | ||
// | ||
Процедура Очистить() | ||
``` | ||
|
||
### Вставить | ||
|
||
```bsl | ||
// Вставляет в карту переданную пару ключ и значение | ||
// | ||
// Параметры: | ||
// Ключ - Произвольный - Вставляемый ключ | ||
// Значение - Произвольный - Вставляемое значение | ||
// | ||
// Возвращаемое значение: | ||
// Опциональный<Произвольный> - Значение, ранее было связанное с ключом | ||
// | ||
Функция Вставить(Ключ, Значение) | ||
``` | ||
|
||
### ВставитьВсе | ||
|
||
```bsl | ||
// Вставляет все значения из переданной карты | ||
// | ||
// Параметры: | ||
// Карта - Карта - Карта, значения из которой вставляются | ||
// | ||
Процедура ВставитьВсе(Карта) | ||
``` | ||
|
||
### ВставитьЕслиОтсутствует | ||
|
||
```bsl | ||
// Вставляет в карту переданную пару ключ и значение, если карта не содержит переданного ключа | ||
// | ||
// Параметры: | ||
// Ключ - Произвольный - Вставляемый ключ | ||
// Значение - Произвольный - Вставляемое значение | ||
// | ||
// Возвращаемое значение: | ||
// Опциональный<Произвольный> - Значение, связанное с ключом, пустой если карта не содержала ключа | ||
// | ||
Функция ВставитьЕслиОтсутствует(Ключ, Значение) | ||
``` | ||
|
||
### ВычислитьБезусловно | ||
|
||
```bsl | ||
// Вычисляет значение для переданного ключа через функцию переназначения, если функция вернёт значение | ||
// то оно будет вставлено по указанному ключу, если функция вернёт Неопределено, то из карты будет удалён | ||
// переданный ключ, если ранее карта его содержала | ||
// | ||
// Параметры: | ||
// Ключ - Произвольный - Ключ, для которого вычисляется значение | ||
// ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами, в которую передаются ключ | ||
// и Опциональный от текущего значения ключа (пустой если ключа нет) | ||
// - Строка - Лямбда выражение с двумя параметрами в которую будут переданы ключ | ||
// и Опциональный от текущего значения ключа (пустой если ключа нет) | ||
// | ||
// Пример: | ||
// Карта.ВычислитьБезусловно("Ключ", "(Ключ, Значение) -> ?(Значение.Пустой(), Истина, Ложь)") | ||
// | ||
// Возвращаемое значение: | ||
// Опциональный<Произвольный> - Новое значение ключа | ||
// | ||
Функция ВычислитьБезусловно(Ключ, ФункцияПереназначения) | ||
``` | ||
|
||
### ВычислитьЕслиОтсутствует | ||
|
||
```bsl | ||
// Вычисляет значение для переданного ключа, если текущая карта не содержит переданного ключа, | ||
// через функцию назначения, функция будет вызвана только если карта не содержит ключа, | ||
// если функция вернёт значение, оно будет вставлено в карту по указанному ключу, | ||
// если функция вернёт Неопределенно, то значение вставлено не будет | ||
// | ||
// Параметры: | ||
// Ключ - Произвольный - Ключ, для которого вычисляется значение | ||
// ФункцияНазначения - Действие - Делегат на функцию с одним параметром, в которую передаётся переданный ключ | ||
// - Строка - Лямбда выражение с одним параметром в который будет передан переданный ключ | ||
// | ||
// Пример: | ||
// Карта.ВычислитьЕслиОтсутствует("Ключ", "(Ключ) -> СтрДлина(Ключ)") | ||
// | ||
// Возвращаемое значение: | ||
// Опциональный<Произвольный> - Новое значение ключа если оно было вычислено, или текущее значение ключа | ||
// если карта уже содержала переданный ключ | ||
// | ||
Функция ВычислитьЕслиОтсутствует(Ключ, ФункцияНазначения) | ||
``` | ||
|
||
### ВычислитьЕслиПрисутствует | ||
|
||
```bsl | ||
// Вычисляет значение для переданного ключа, если текущая карта содержит переданный ключ, | ||
// через функцию переназначения, функция будет вызвана только если карта содержит ключ, | ||
// если функция вернёт значение, оно будет вставлено в карту по указанному ключу, | ||
// если функция вернёт Неопределенно, то ключ будет удалён из карты | ||
// | ||
// Параметры: | ||
// Ключ - Произвольный - Ключ, для которого вычисляется значение | ||
// ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами, в которую передаются ключ | ||
// и текущее значение ключа | ||
// - Строка - Лямбда выражение с двумя параметрами, в которые передаются ключ и текущее | ||
// значение ключа | ||
// | ||
// Пример: | ||
// Карта.ВычислитьЕслиПрисутствует("Ключ", "(Ключ, Значение) -> { | ||
// | Если Ключ = ""Ключ"" Тогда | ||
// | Возврат СтрДлина(Значение.Получить()); | ||
// | Иначе | ||
// | Возврат Неопределенно; | ||
// | КонецЕсли; | ||
// |}" | ||
// ); | ||
// | ||
// Возвращаемое значение: | ||
// Опциональный<Произвольный> - Новое значение ключа | ||
// | ||
Функция ВычислитьЕслиПрисутствует(Ключ, ФункцияПереназначения) | ||
``` | ||
|
||
### Слить | ||
|
||
```bsl | ||
// Объединяет текущее и переданное значение по указанному ключу через функцию переназначения, | ||
// функция будет вызвана только если существует текущее значение ключа, в ином случае будет вставлено значение | ||
// если функция вернёт значение, оно будет вставлено в карту по указанному ключу, | ||
// если функция вернёт Неопределенно, то ключ будет удалён из карты | ||
// | ||
// Параметры: | ||
// Ключ - Произвольный - Ключ, значения для которого требуется объединить | ||
// Значение - Произвольный - Новое значение ключа | ||
// ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами в которые передаются | ||
// существующее и новое значение ключа | ||
// - Строка - Лямбда выражение с двумя параметрами в которые передаются | ||
// существующее и новое значение ключа | ||
// | ||
// Пример: | ||
// Карта.Слить("Ключ", 4, "(СуществующееЗначение, НовоеЗначение) -> | ||
// | Возврат ?(НовоеЗначение > СуществующееЗначение, | ||
// | НовоеЗначение, | ||
// | СуществующееЗначение | ||
// | );") | ||
// | ||
// Возвращаемое значение: | ||
// Опциональный<Произвольный> - Новое значение ключа | ||
// | ||
Функция Слить(Ключ, Значение, ФункцияПереназначения) | ||
``` | ||
|
||
### Заменить | ||
|
||
```bsl | ||
// Заменяет значение по переданному ключу, если ключа в карте нет, то замена не происходит | ||
// | ||
// Параметры: | ||
// Ключ - Произвольный - Ключ, значение которого требуется заменить | ||
// Значение - Произвольный - Новое значение ключа | ||
// | ||
// Возвращаемое значение: | ||
// Опциональный<Произвольный> - Прошлое значение ключа, или пустой, если ключа не было | ||
// | ||
Функция Заменить(Ключ, Значение) | ||
``` | ||
|
||
### ЗаменитьЕслиЗначение | ||
|
||
```bsl | ||
// Заменяет значение по переданному ключу с проверкой текущего значения, | ||
// если ключа в карте нет, то замена не происходит | ||
// | ||
// Параметры: | ||
// Ключ - Произвольный - Ключ, значение которого требуется заменить | ||
// ПрошлоеЗначение - Произвольный - Значение, которое должно быть связано с ключом для замены | ||
// Значение - Произвольный - Новое значение ключа | ||
// | ||
// Возвращаемое значение: | ||
// Булево - Истина, если замена была произведена | ||
// | ||
Функция ЗаменитьЕслиЗначение(Ключ, ПрошлоеЗначение, Значение) | ||
``` | ||
|
||
### ЗаменитьВсе | ||
|
||
```bsl | ||
// Заменяет значение для всех ключей карты, через функцию переназначения | ||
// | ||
// Параметры: | ||
// ФункцияПереназначения - Действие - Делегат на функцию с двумя параметрами, в которую | ||
// передаются ключ и значение ключа | ||
// - Строка - Лямбда выражение с двумя параметрами, в которые передаются | ||
// ключ и значение ключа | ||
// | ||
// Пример: | ||
// Карта.ЗаменитьВсе("(Ключ, Значение) -> Значение + 1") | ||
// | ||
Процедура ЗаменитьВсе(ФункцияПереназначения) | ||
``` | ||
|
||
### Удалить | ||
|
||
```bsl | ||
// Удаляет переданный ключ из карты | ||
// | ||
// Параметры: | ||
// Ключ - Произвольный - Удаляемый ключ | ||
// | ||
// Возвращаемое значение: | ||
// Опциональный<Произвольный> - Значение, ранее было связанное с ключом | ||
// | ||
Функция Удалить(Ключ) | ||
``` |
Oops, something went wrong.