|
Операция ++ | ☑ | ||
---|---|---|---|---|
0
andreymongol82
21.11.13
✎
09:19
|
Пишем
Сообщить("010"++"010"); Выдает: 01010 Что за новая операция "++"? Почему не выдало ошибки? Или меня уже глючит? |
|||
1
Maxus43
21.11.13
✎
09:20
|
читай как "010"+нихрена+"010"
|
|||
2
Cube
21.11.13
✎
09:21
|
(0) Что тебе не нравится? Платформа это понимает как: "010"+""+"010". Так понятнее?))
|
|||
3
1dvd
21.11.13
✎
09:21
|
(2) куда тогда нолик девался?
|
|||
4
МойКодУныл
21.11.13
✎
09:21
|
(1)(2) Нолика не хватает тогда.
|
|||
5
andreymongol82
21.11.13
✎
09:22
|
(1)А куда нолик делся?
|
|||
6
Maxus43
21.11.13
✎
09:22
|
(3)(4) я щетаю это очепятка автора
|
|||
7
1dvd
21.11.13
✎
09:22
|
(0) прикольно, да
|
|||
8
1dvd
21.11.13
✎
09:22
|
(6) а я проверил - не опечатка. 1С действительно так считает
|
|||
9
andreymongol82
21.11.13
✎
09:23
|
(6) неа, не очепятка
|
|||
10
Godofsin
21.11.13
✎
09:23
|
(6) Неа
|
|||
11
Cube
21.11.13
✎
09:23
|
(6) Нет, я проверил)))
Прикольно, а "010"+++"010" вообще ошибку выдает) |
|||
12
singlych
21.11.13
✎
09:24
|
читай как "010" + Число("010")
|
|||
13
1dvd
21.11.13
✎
09:24
|
||||
14
singlych
21.11.13
✎
09:24
|
типа второй "+" это унарный +
|
|||
15
Maxus43
21.11.13
✎
09:25
|
ну значит да, новая операция. Ура, слава 1с!
|
|||
16
Godofsin
21.11.13
✎
09:25
|
Еще прикол:
"010"--"010" = 20 =)))) |
|||
17
Лефмихалыч
21.11.13
✎
09:25
|
второй плюс расценивается видать, как унарный и преобразовывает "010" к числу. Тут-то нолик и теряется
|
|||
18
Maxus43
21.11.13
✎
09:25
|
пользоваться всё равно этим не надо никогда
|
|||
19
Лефмихалыч
21.11.13
✎
09:26
|
это магия риальне
|
|||
20
1dvd
21.11.13
✎
09:26
|
(16) вот это вообще за гранью бобра и зла
|
|||
21
1dvd
21.11.13
✎
09:27
|
"010"+-"010" = 010-10
|
|||
22
andreymongol82
21.11.13
✎
09:28
|
(12) (15) (16) Ага, спасибо. Вроде бы понятно.
(18) Естессно |
|||
23
catena
21.11.13
✎
09:28
|
Дааа, ++ прикольная штука. Экспериментальным методом в свое время сошлись на том, что ++ преобразует следующий аргумент в число.
|
|||
24
andreymongol82
21.11.13
✎
09:29
|
(22) Поход в психушку откладывается :)
|
|||
25
Maxus43
21.11.13
✎
09:29
|
(23) см (16), там магия
|
|||
26
Лефмихалыч
21.11.13
✎
09:29
|
(20) шаблоны рвет, но на самом деле объяснимо. Оператор бинарный минус не определен для строк, по этому платформа принудительно приводить левое значение к числу.
Хотя по уму должна бы прерывать исполнение в воплями |
|||
27
singlych
21.11.13
✎
09:29
|
(16) Ну правильно. Когда хочешь вычесть из строки, платформа пытается привести ее к числу.
|
|||
28
Эмбеддер
21.11.13
✎
09:30
|
(16) логично, 10-(-10)=20
|
|||
29
Как страшно жить
21.11.13
✎
09:30
|
требую в 1С опраторов
+= ++ и прочей си-магии |
|||
30
andreymongol82
21.11.13
✎
09:30
|
(21) Вот вот это жесть
|
|||
31
andreymongol82
21.11.13
✎
09:31
|
(29) Ага, тогда бы классический прикол-головоломка был бы там
i = 5; i = ++i + ++i; |
|||
32
catena
21.11.13
✎
09:32
|
(25)-- делает Число() из предыдущего аргумента
|
|||
33
Эмбеддер
21.11.13
✎
09:32
|
а всего-то надо было просто ошибку выдать
|
|||
34
catena
21.11.13
✎
09:32
|
а++б = а + Число(б)
а--б = Число(а)+б |
|||
35
Godofsin
21.11.13
✎
09:34
|
(26) (27) (28) Ну да, объясняет.
Следующая задачка: "010"//"010" = 010 ))))) |
|||
36
Maxus43
21.11.13
✎
09:34
|
(33) вот тут надо ошибку выдать, а (0) не смертельно
ВЫБРАТЬ ТИПЗНАЧЕНИЯ(ПРЕДСТАВЛЕНИЕССЫЛКИ(Валюты.Ссылка)) КАК Поле2, Валюты.Ссылка ИЗ Справочник.Валюты КАК Валюты |
|||
37
1dvd
21.11.13
✎
09:34
|
(35) У, ШАЙТАН! Не ломай мне моск
|
|||
38
catena
21.11.13
✎
09:35
|
(35) Ожидается символ ';'
|
|||
39
1dvd
21.11.13
✎
09:35
|
(35) а, это ж камент просто
|
|||
40
1dvd
21.11.13
✎
09:36
|
(38) открой табло
|
|||
41
catena
21.11.13
✎
09:37
|
(40)В табле... А в тексте так и будет.
|
|||
42
andreymongol82
21.11.13
✎
09:37
|
(36) В дамп упало...
|
|||
43
Godofsin
21.11.13
✎
09:38
|
(39) Молоток! =))
|
|||
44
Maxus43
21.11.13
✎
09:38
|
(42) я в курсе) Обещали исправить год назад - так и не исправили. Так что пользуйся оружием против 1с
|
|||
45
1dvd
21.11.13
✎
09:39
|
(36) +1 отличный способ завалить 1С
|
|||
46
andreymongol82
21.11.13
✎
09:41
|
(44) Сделаю закладку, буду на врагов так порчу насылать :))))
|
|||
47
Lama12
21.11.13
✎
09:47
|
(0)Прикольно конечно.
Получается, что не объявленное значение, в данном случае значение между + и +, по умолчанию считается числом. Вопрос - почему платформа не последовательно выполняет операнды? Получается что она сначала привела пустоту к числу, потом число сложила со значением справа, приведя его тоже к числу, а после этого попыталась сложить результат с тем, что слева. |
|||
48
singlych
21.11.13
✎
09:49
|
(47) Все правильно она считает. Второй плюс - это унарный, а у него приоритет выше.
|
|||
49
andreymongol82
21.11.13
✎
09:52
|
(48) Как бе официально нет в 1С унарных операций, но по факту оказывается, что есть.
|
|||
50
Asmody
21.11.13
✎
10:06
|
(49) унарный минус есть вполне официально. а если есть унарный минус, то почему бы не быть унарному плюсу?
|
|||
51
Рэйв
21.11.13
✎
10:11
|
(0)Наверное зарезервировали на будущее ++, поставили заглушку как отработка унарного +, а для ++ определение еще не написали :-)
|
|||
52
Эмбеддер
21.11.13
✎
10:16
|
(51) может они и +- тоже зарезервировали в таком случае?
|
|||
53
Рэйв
21.11.13
✎
10:19
|
(52)У них все возможно.
|
|||
54
Эмбеддер
21.11.13
✎
11:38
|
(53) в отличие от винды, в 1с нет "пасхальных яиц"(((
|
|||
55
Torquader
22.11.13
✎
00:59
|
Всё бы было не так смешно, если бы
Строка(п1)+ +Строка(п2) выдало сообщение, что значение не может быт преобразовано к типу число. Целый час на это убил, пока в коде (из 30 строк) нашёл два плюса подряд. |
|||
56
GROOVY
22.11.13
✎
01:09
|
(54) Есть. Но все считают их багами.
|
|||
57
Torquader
22.11.13
✎
01:15
|
(50) Как бы логично минус или плюс относить только к числовым литералам.
То есть 1+-2 или 1++2 вполне понятно, а Один++Два - сразу выдавать ошибку или требовать расстановку скобок Один+(+Два). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |