|
В чем смысл функции? | ☑ | ||
---|---|---|---|---|
0
mikecool
09.12.14
✎
16:27
|
Функция КлючИЗначение(Структура)
Для каждого КлючИЗначение Из Структура Цикл Возврат КлючИЗначение; КонецЦикла; КонецФункции |
|||
1
Гёдза
09.12.14
✎
16:28
|
получить первый ключизначение структуры
|
|||
2
Garykom
гуру
09.12.14
✎
16:28
|
(0) вернуть последнее, т.е. первое?
|
|||
3
Armando
09.12.14
✎
16:29
|
Безопасное получение первого ключазначение
|
|||
4
mikecool
09.12.14
✎
16:29
|
(3) афигеть безопасность )
это быстрее, чем прочитать количество() и вернуть [0]? |
|||
5
Ёпрст
09.12.14
✎
16:30
|
(3) я бы сказал, без проверочное :)
|
|||
6
Armando
09.12.14
✎
16:30
|
По сути для любой коллекции подойдет
|
|||
7
Garykom
гуру
09.12.14
✎
16:30
|
(3) не не безопасное это когда неопределено... или функция без "Возврат" как раз его и вернет?
|
|||
8
YFedor
09.12.14
✎
16:30
|
Заодно, если структура пуста вернет Неопределено
|
|||
9
Smallrat
09.12.14
✎
16:30
|
вот только, емнип, структура не всегда возвращает значения в том порядке, в котором они добавлялись. То есть значение будет от балды, ну или exception, если вдруг это пустая структура
|
|||
10
silent person
09.12.14
✎
16:30
|
а что вернет если нет элементов ?
|
|||
11
Ёпрст
09.12.14
✎
16:32
|
(10) неопределенно
|
|||
12
Ёпрст
09.12.14
✎
16:32
|
вот вернйт ошибку, если это не коллекция..
|
|||
13
mikecool
09.12.14
✎
16:33
|
вот оказывается сколько смыслов может быть ...
|
|||
14
Armando
09.12.14
✎
16:33
|
(4) Не думаю что быстрее. Если бы была проверка на количество, и возврат первого элемента коллекции, то было бы понятней. А так индуский код какой-то получился.
|
|||
15
Локи-13
09.12.14
✎
16:33
|
(0) запостить ее на мисте?
|
|||
16
mikecool
09.12.14
✎
16:35
|
(15) не, это вообще не смысл был
я не увидел смысла, вот и спросил |
|||
17
ДенисЧ
09.12.14
✎
16:39
|
смысл простой - шоб було.
|
|||
18
Бледно Золотистый
09.12.14
✎
16:42
|
(16) А откуда это? Типовое или самописко?
|
|||
19
mikecool
09.12.14
✎
16:44
|
(18) Управление торговлей, редакция 11.1 (11.1.2.23)
самописного от внедренцев полно и похлеще |
|||
20
Лефмихалыч
09.12.14
✎
16:46
|
(0) функция позволяет не проверять в туевой хуче мест
Если Структура.Количество() Тогда |
|||
21
Лефмихалыч
09.12.14
✎
16:47
|
(9) это соответствие не в том порядке, а структура упорядоченная
|
|||
22
Smallrat
09.12.14
✎
16:48
|
(21) да, попутал
|
|||
23
mikecool
09.12.14
✎
16:49
|
(20) емнип, метод Количество() возвращает значение свойства структуры(по паскалю припоминаю)
неужели организовать цикл быстрее чем опросить свойство? |
|||
24
mikecool
09.12.14
✎
16:49
|
+23 а также возврат Неопределено в случае пустой структуры тоже не айс
|
|||
25
marvak
09.12.14
✎
16:51
|
(0)
самый простой способ вернуть пару КлючИЗначение структуры. номер значения не имеет, имхо |
|||
26
Лефмихалыч
09.12.14
✎
16:58
|
(23) я не адвокат подхода (0), я просто предположил, чем мог руководствоваться автор. Не тоже не понимаю, чем
Если Структура.Количество() Тогда отличается от первыйЭлемент = КлючЗначение(Структура); Если ЗначениеЗаполнено(ПервыйЭлемент) Тогда |
|||
27
sapphire
09.12.14
✎
16:58
|
Тупая функция хавающая все виды коллекций, вызывающая исключение если передан неитерабельный тип.
|
|||
28
sapphire
09.12.14
✎
16:59
|
(24) А если передан массив и первый элемент оного равен неопределено?
|
|||
29
mikecool
09.12.14
✎
17:00
|
все теперь стало на места в голове )
не первый раз сталкиваюсь с таким кодом и наконец решил таки выяснить - в чем соль ) |
|||
30
mikecool
09.12.14
✎
17:00
|
(28) зато он есть )
|
|||
31
sapphire
09.12.14
✎
17:01
|
(30) не факт. А если массив не имеет элементов, то тоже ведь неопределено
|
|||
32
sapphire
09.12.14
✎
17:04
|
(30)
Функция ЭтоКоллекция(Параметр) try Для каждого КлючИЗначение Из Параметр Цикл Возврат Истина; КонецЦикла; except Возврат Ложь; endtry; КонецФункции |
|||
33
su_mai
09.12.14
✎
17:25
|
(0) Вызвать разрыв мозга, да? Вызвать исключение если Структура - не коллекция :)
|
|||
34
H A D G E H O G s
09.12.14
✎
17:34
|
Смысл - показать, что автор сего творческая личность, именно тот мифический программист, которого так любят HR. Радуйся, ТС, ты обнаружил след!
|
|||
35
H A D G E H O G s
09.12.14
✎
17:35
|
(0) Там еще много таких подарков?
|
|||
36
Фокусник
09.12.14
✎
17:37
|
(32) и не влом на латиницу переключать? :)
|
|||
37
H A D G E H O G s
09.12.14
✎
17:39
|
(36) Так круче. Это - как шляпа у Боярского, признак выдержанности программист.
|
|||
38
IШаман
09.12.14
✎
17:52
|
(34) Один мой знакомый называл такое решение "Элегантным"
|
|||
39
ДенисЧ
09.12.14
✎
18:04
|
(38) Очень хорошо воспитанный знакомый....
|
|||
40
Эмбеддер
09.12.14
✎
20:12
|
(0) плохо то, что в конце Неопределено не возвращает
|
|||
41
Asmody
09.12.14
✎
20:18
|
Чую, автор сего опуса перечитал книг по фунциональному программированию.
|
|||
42
exchang
09.12.14
✎
20:36
|
Черти одни собрались тут, все караул грамотеи, ума на большее не хватит, и при том при всем, что каждому из всех вас до автора это кода даже не стоять рядом
|
|||
43
tridog
09.12.14
✎
20:37
|
(40) Если внутри функции не будет вызван Возврат - как-раз и будет возвращено Неопределено.
(42) Не боги горшки обжигают. Это в плане "крутости" авторов УТ11. А функция и правда долбанутая. |
|||
44
exchang
09.12.14
✎
20:43
|
(43) Просто это мерзко все, можно подумать все такие безупречные, а что до авторов УТ11, так они по крайней мере работой занимаются, а не семки не скамейке щелкают с подружками по одному подъезду
|
|||
45
tridog
09.12.14
✎
21:04
|
(44) Это не отменяет того, что функция долбанутая :)
|
|||
46
фобка
09.12.14
✎
21:07
|
Думаю это для структур с одним ключом и не важно как он обзывается
|
|||
47
ДенисЧ
09.12.14
✎
21:12
|
(42) Да, рядом с автором этого кода я даже какать на одном кв. километре не сяду...
|
|||
48
фобка
09.12.14
✎
21:14
|
Предположу что используется как универсальный механизм для передачи параметров в открытые формы, например.. Давно типовые конфы не видел, с УТ11 последний раз работал 2 года назад... Нужно смотреть где используется..
|
|||
49
iHell
09.12.14
✎
21:17
|
(4) Структура - неупорядоченная коллекция, по индексу нельзя обращаться.
|
|||
50
GreyK
09.12.14
✎
21:36
|
(0) Не парься, людям платят за количество знаков за день и "модульность", кто-то из прогов прикололся над "хозяином-заказчиком".
|
|||
51
exchang
09.12.14
✎
21:55
|
(47)(50) Так изложите свое видение данного решения, откройте конфигуратор и хотя бы сделайте замер производительности, и тогда извольте, обсирайтесь сколько угодно
|
|||
52
фобка
09.12.14
✎
22:00
|
(51) ты автор функции в (0) чтоли? в (42) написана чушь. Не надо боготворить создателей типовых, это такие же программисты как и все остальные, просто они жестко подчинены регламентам и правилам
|
|||
53
ShoGUN
09.12.14
✎
22:01
|
(0) Да мало ли странностей у людей? Я вот в самописке охреневал от людей, которые не знали про Формат(Переменная,"ЧГ=0") и написали целую функцию, чтобы убирать неразрывные пробелы.
|
|||
54
ShoGUN
09.12.14
✎
22:01
|
А мой знакомый видел функцию для замены Свернуть() у ТЗ. О как!
|
|||
55
GreyK
09.12.14
✎
22:04
|
(51) Ты хоть примеры приведи где такое пользуют и какие надои с одной коровы.
|
|||
56
Asmody
09.12.14
✎
22:08
|
Разное бывает. Когда-то сам такое на javascript'е написал:
`f=function(a,b,c) { return a.split(b).join(c); }` |
|||
57
exchang
09.12.14
✎
22:10
|
(52) мой ответ на ваш вопрос в (44)
(51) приведите примеры себе сами, а коров для надоя можете легко, хоть миллион надоить. В цикле |
|||
58
GreyK
09.12.14
✎
22:12
|
(56) В чём цимус сей функции, может быть в сбросе переменных? Может научиться обнулять переменные и всё будет тип-топ и в одной процедуре?
|
|||
59
фобка
09.12.14
✎
22:41
|
(57) я ежедневно по 6-8 часов только код пишу, так что мимо
|
|||
60
Марсель
10.12.14
✎
01:01
|
С точки зрения производительности, код указанной в (0) функции более оптимален, чем конструкция
<code> Если Структура.Количество() Тогда Возврат Структура [0]; КонецЕсли; </code> Особенно, учитывая что имеем дело со скриптовым языком. Сравните количество операторов (в том числе не явных) в двух вариантах. Другой вопрос, стоила ли производительность (не забываем, что говорим об 1С) того, что для большинства код стал не понятен. |
|||
61
rsv
10.12.14
✎
01:34
|
(0) Select Top 1
|
|||
62
rsv
10.12.14
✎
01:34
|
И места не много ....
|
|||
63
mikeA
10.12.14
✎
10:22
|
(51) на 1 000 000 итераций
3,666253 код из (0) 2,696716 проверка Если Структура.Количество() > 0 и это когда "если количество" вызывать как функцию. а если проверять в коде будет ещё в два раза быстрее |
|||
64
Asmody
10.12.14
✎
10:43
|
А так не быстрее?
Возврат ?(Структура.Количество()=0,Неопределено,Структура[0]); |
|||
65
DrZombi
гуру
10.12.14
✎
10:44
|
(0) Писатель из разряда "Гуано-Код" :)
|
|||
66
DrZombi
гуру
10.12.14
✎
10:46
|
(42) Спасибо, я лучше в своем уголке постою, чем с автором Быдло-кода :)
|
|||
67
DrZombi
гуру
10.12.14
✎
10:50
|
+(0) Смысл:
Вернуть первое попавшееся значение из Структуры или Свойства, или подобного элемента с характерными свойствами. Так же Автор обошелся без проверки на "Если и Тогда" ... Самое ужасно, что если Вдруг, кто-то начнет писать первым значением какой либо мусор, то все пойдет к черту :) |
|||
68
mikeA
10.12.14
✎
11:20
|
(64) ну inline то везде быстрее будет даже в 1С )
в этом случае на 20% примерно |
|||
69
H A D G E H O G s
10.12.14
✎
11:39
|
(68) Рекомендую почитать, что же такое inline и не писать пургу.
Встречал я дятлокод в одну строку, для "оптимизации", это было нечто. |
|||
70
Ненавижу 1С
гуру
10.12.14
✎
11:40
|
(64) зависит как реализован метод Количество()
|
|||
71
ShoGUN
10.12.14
✎
12:01
|
(60)(64) Я не догнал, давно у нас в структурах индексы появились? Код в (0) можно использовать только для структуры с одним элементом, в противном случае у него поведение не документировано, структура-то - неупорядоченная коллекция.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |