LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

from_str::(&read_to_string(«data.json»)?)?[3]

from_str::? Это точно работает? А как оно получает массив (или нечто с индексом)?

Если у нас устраивает, что где-то строка (слишком общий тип), то и ладно.

Это хорошо, когда всё укладывается в строку. Но ведь есть ещё массивы, соответствия, объекты GUI…

Когда я пишу на 1С, меня очень радует, что у него динамическая типизация. При необходимости, можно с любыми данными пробросить дополнительные просто упаковав их в структуру и добавив в начале функций, которые эти данные обрабатывают проверку типа.

Было:
Функция Обработка(Данные)
...

Стало
Функция Обработка(Данные0)
  Если ТипЗнч(Данные0) = Тип("Структура") Тогда
    Данные = Данные0.Старые;
  Иначе
    Данные = Данные0;
  КонецЕсли
...
  Если ТипЗнч(Данные0) = Тип("Структура") Тогда
    ВыполнитьДопонительноеДействие(Данные0.Дополнительные);
  КонецЕсли;
...

Если бы 1С был типизированный, то пришлось бы копипастить функцию, а потом отслеживать изменения в новых версиях функции. А так 6-строчная заплатка справляется.

Исправление monk, :

from_str::(&read_to_string(«data.json»)?)?[3]

from_str::? Это точно работает? А как оно получает массив (или нечто с индексом)?

Если у нас устраивает, что где-то строка (слишком общий тип), то и ладно.

Это хорошо, когда всё укладывается в строку. Но ведь есть ещё массивы, соответствия, объекты GUI…

Когда я пишу на 1С, меня очень радует, что у него динамическая типизация. При необходимости, можно с любыми данными пробросить дополнительные просто упаковав их в структуру и добавив в начале функций, которые эти данные обрабатывают проверку типа.

Было:
Функция Обработка(Данные)
...

Стало
Функция Обработка(Данные0)
  Если ТипЗнч(Данные0) = Тип("Структура") Тогда
    Данные = Данные0.Старые;
  Иначе
    Данные = Данные0;
  КонецЕсли
...
  Если ТипЗнч(Данные0) = Тип("Структура") Тогда
    ВыполнитьДопонительноеДействие(Данные.Дополнительные);
  КонецЕсли;
...

Если бы 1С был типизированный, то пришлось бы копипастить функцию, а потом отслеживать изменения в новых версиях функции. А так 6-строчная заплатка справляется.

Исходная версия monk, :

from_str::(&read_to_string(«data.json»)?)?[3]

from_str::? Это точно работает? А как оно получает массив (или нечто с индексом)?

Если у нас устраивает, что где-то строка (слишком общий тип), то и ладно.

Это хорошо, когда всё укладывается в строку. Но ведь есть ещё массивы, соответствия, объекты GUI…

Когда я пишу на 1С, меня очень радует, что у него динамическая типизация. При необходимости, можно с любыми данными пробросить дополнительные просто упаковав их в структуру и добавив в начале функций, которые эти данные обрабатывают проверку типа.

Было:
Функция Обработка(Данные)
...

Стало
Функция Обработка(Данные)
  Если ТипЗнч(Данные) = Тип("Структура") Тогда
    Данные = Данные.Старые;
  КонецЕсли
...
  Если ТипЗнч(Данные) = Тип("Структура") Тогда
    ВыполнитьДопонительноеДействие(Данные.Дополнительные);
  КонецЕсли;
...

Если бы 1С был типизированный, то пришлось бы копипастить функцию, а потом отслеживать изменения в новых версиях функции. А так 6-строчная заплатка справляется.