Имя: Пароль:
1C
 
Чем Структура отличается от Соответствия
0 TDI
 
03.12.09
17:49
Чем эти колекции значений отличаются друг от друга?
И там КлючИЗначение , и итам...
не пойму..
может кто нить пояснить?
1 Волшебник
 
03.12.09
17:50
У соответствия ключ может быть почти любого типа. Обращение только через []
Для ключей примитивных типов используется индекс (значение можно получить ОЧЕНЬ быстро, даже если там миллионы строк)
2 TDI
 
03.12.09
17:55
(1) А у соответствия ключ примитивного типа не может быть ?
3 zbv
 
03.12.09
17:57
(2) почему у тебя возник этот вопрос?
4 Волшебник
 
03.12.09
18:00
(2) Не понял твою логику. Может быть.
5 Волшебник
 
03.12.09
18:01
Ключ структуры должен быть строкой, удовлетворяющей требованиям к идентификаторам. Т.е. может содержать буквы, цифры и знак подчёркивания, не может начинаться с цифры.
6 НЕА123
 
03.12.09
18:09
(0)
согласен с Волшебник

по возможности использую структуру - проще с ней работать.
7 Mort
 
03.12.09
18:11
Странный выбор типа объекта по тому как проще с ним работать. Имхо, в каждой задаче используется то, что надо для задачи.
8 Jolly Roger
 
03.12.09
18:24
(0)забудь, что Структура является коллекцией, и все станет понятно...
9 sergeante
 
03.12.09
18:25
(8) +1
10 Mort
 
03.12.09
18:28
(8) С чего бы?

Структура (Structure)
Элементы коллекции:
КлючИЗначение
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
11 YauheniL
 
03.12.09
18:34
(0) В С++ есть аналоги struct без методов и Map в STL
12 Jolly Roger
 
03.12.09
18:37
(10) с того, что это - идеологически неправильно...
13 Mort
 
03.12.09
18:43
(12) Пришла структура и я хочу проверить соответствует ли она структуре полей моей структуре. Я обхожу элементы коллекции и проверяю. В чем "идеологическая" ошибка?
14 Mort
 
03.12.09
18:43
*моей структуры
15 Jolly Roger
 
03.12.09
18:52
(13) идеологически правильнее было бы рефлексию вынести в отдельный интерфейс. но, благодаря тому, что 1с - "доступно и всерьез", имеем то, что имеем. это во-первых. а во-вторых, если состав "твоей структуры" заранее неизвестен, наверно, имеет смысл заюзать другой тип...
16 Mort
 
03.12.09
18:55
(15) "Идеологически" это как в C++ struct?
17 Jolly Roger
 
03.12.09
18:55
(16) переведи
18 Mort
 
03.12.09
18:59
(17) ты говоришь все время "идеологически правильно". Что за идеология ? С++? Своя придуманная?
19 Лефмихалыч
 
03.12.09
19:00
(12) Почему же? Очень удобно, помня о том, что структура - это коллекция, делать всякие такие штуки:

Параметры = Новый Структура("ТолькоПросмотр, Доступность, КнопкаВыбора, КнопкаОчистки",Истина, Ложь, Истина, Ложь);
Для Каждого КлючЗначение из Параметры Цикл
 Для каждого Колонка из МоеТабличноеполе.Колонки Цикл
    Колонка.ЭлементУправления[КлючЗначение.Ключ] = КлючЗначение.Значение;
20 Лефмихалыч
 
03.12.09
19:01
ну, только циклы местами перепутал
21 Jolly Roger
 
03.12.09
19:04
(18) излишне напоминать, что все, написанное мной выше, - сугубо имхо...
в качестве прототипа "идеологии" имею ввиду дотнет...
22 Jolly Roger
 
03.12.09
19:05
(19) почему именно структура?
23 Mort
 
03.12.09
19:09
(21) В дотнет аналог 1С структуры это dictionary

http://dotnetperls.com/dictionary-keys

, который отлично обходится циклом foreach..
24 Jolly Roger
 
03.12.09
19:20
(23) в результате, в 1сv8 имеем два класса с перекрывающимся на 90% функционалом: две коллекции - аналоги словаря и хештейбла в дотнете. если бы Структура по функционалу была аналогична структуре дотнета, было бы идеологически правильно...
25 Лефмихалыч
 
03.12.09
19:22
(23) потому, что у соответствия конструктора такого удобного нет
26 luns
 
03.12.09
19:28
Насколько я понимаю "внутренности", то структура и соответствие это массивы. Просто с разными типами индексов.
Не проверял и не видел такой инфы, но думаю что с ключами примитивных типов структура будет быстрее соответствия, кроме того структура удобна обращениями типа:
МояСтруктура.МоеЧтоТо без Получить.
27 Лефмихалыч
 
03.12.09
19:28
(25) >> (22)
28 Jolly Roger
 
03.12.09
19:30
(25) нетрудно сделать чтоб был...
29 Лефмихалыч
 
03.12.09
19:32
(28) во-первых, лишние буквы, во-вторых, если нет доступа до конфигурации (например), то это дублирование кода получится в промышленных масштабах
30 Лефмихалыч
 
03.12.09
19:32
+(29) а за дублирование кода нужно вешать за йайцы
31 Jolly Roger
 
03.12.09
19:33
(30) начинай вешать с разработчиков в8...
32 Jolly Roger
 
03.12.09
19:36
(29) была бы Структура структурой - все бы юзали соответствие и не жужжали бы...
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший