![]() |
|
Недокументированные возможности вызова процедур | ☑ | ||
---|---|---|---|---|
0
MyNameIs
02.06.20
✎
08:53
|
Нашел в типовой конфигурации вызов процедуры, где параметр передается в виде "+1". Где-нибудь в документации есть описание таких инкрементаций?
|
|||
1
ptiz
02.06.20
✎
08:56
|
(0) Это для наглядности кто-то написал "+1" вместо "1"
|
|||
2
ДенисЧ
02.06.20
✎
08:58
|
Это не инкрементация. Это кто-то просто забыл убрать +.
Наверное, раньше было "порядок + 1", потом порядок убрали. |
|||
3
Ненавижу 1С
гуру
02.06.20
✎
09:05
|
опять же форматирование текста красивое
ИзменитьПорядковыйНомерПерехода(+1); ИзменитьПорядковыйНомерПерехода(-1); кстати, чисто академический вопрос: +1 - это константа "+1" или унарный оператор + примененный к константе "1"? |
|||
4
MyNameIs
02.06.20
✎
09:06
|
(1) (2) Сомнительно, что это так. Вот еще пример, где делается декрементация.
|
|||
5
dka80
02.06.20
✎
09:09
|
ИзменитьПорядковыйНомерПерехода(1) - так понятно, следующее значение будет больше или меньше? А вот ИзменитьПорядковыйНомерПерехода(-1) говорит, что следующее значение будет меньше. Сделано для наглядности
|
|||
6
NorthWind
02.06.20
✎
09:16
|
(0) +1 - это то же самое что 1. Плюс в данном случае игнорируется.
|
|||
7
MyNameIs
02.06.20
✎
09:18
|
Переписал свою процедуру, где делается рекурсивный вызов - всё работает.
|
|||
8
MyNameIs
02.06.20
✎
09:20
|
(6) Тогда как объяснишь что происходит в (4). Плюс смотри (7).
|
|||
9
fisher
02.06.20
✎
09:28
|
(8) Не тупи. Это не инкремент/декремент. Это просто унарный оператор.
Читай "Описание языка" - "Арифметические операции" - "Унарный минус" Унарный плюс отдельно не описывается, потому что никакого смысла он не несет и эквивалентен его неиспользованию. |
|||
10
ДенисЧ
02.06.20
✎
09:30
|
Инкремент, это когда сч++ (ну, или для эстэтов ++сч).
А тут просто явная спецификация знака. |
|||
11
fisher
02.06.20
✎
09:31
|
"Это просто унарный оператор" = "Это просто унарный оператор знака"
|
|||
12
fisher
02.06.20
✎
09:32
|
Просто автор функции использовал его для наглядности.
|
|||
13
fisher
02.06.20
✎
09:34
|
(10) Почему "для эстетов"? Разные операции для разных целей.
|
|||
14
NorthWind
02.06.20
✎
09:34
|
(10) это не то чтобы для эстетов... если использовать конструкции ++i и i++ в выражениях, то результат может меняться
|
|||
15
NorthWind
02.06.20
✎
09:36
|
если эта штука используется сама по себе, т.е. i++; или ++i; - тогда разницы действительно нет. А если в выражении, то порядок вычисления поменяется.
|
|||
16
MyNameIs
02.06.20
✎
09:37
|
(9) Тогда как объяснишь почему работает (7)? Результат работы не поменялся.
|
|||
17
ДНН
02.06.20
✎
09:39
|
(15) ++i производительней
|
|||
18
VladZ
02.06.20
✎
09:40
|
(0) "Недокументированные возможности вызова процедур" ?
Ну давай... Расскажи нам про недокументированные возможности. Поржем вместе. |
|||
19
ДНН
02.06.20
✎
09:40
|
(16)
&НаКлиенте Процедура Команда1(Команда) СообщитьЧисло(1); СообщитьЧисло(+1); СообщитьЧисло(-1); КонецПроцедуры &НаКлиенте Процедура СообщитьЧисло(Число) Сообщить(Число); КонецПроцедуры Можешь проверить у себя. Во всех трех случаях сообщит 1 |
|||
20
fisher
02.06.20
✎
09:41
|
(16) Не поменяться он мог в единственном случае. При "НомерСтраницы = 0". В противном случае кури отладчик, чтобы понять где ты затупил.
|
|||
21
mikecool
02.06.20
✎
09:42
|
(0) не слушай никого! это чистая магия от 1с
|
|||
22
ДНН
02.06.20
✎
09:43
|
к (19) в третьем случае конечно же сообщит -1
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |