LINUX.ORG.RU

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

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

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

Работает. from_str возвращает тип, который умеет десериализоваться. В данном случае serde_json::Value у которого реализована индексация.

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

Не очень понимаю. В каком виде эти «массивы, соответствия, объекты GUI» попадают в программу и что с ними делать надо? Если ничего, а просто передать дальше, то и типизировать не обязательно. Если же всё-таки какое-то взаимодействие есть, то есть и тип.

Если бы 1С был типизированный, то пришлось бы копипастить функцию

Вероятно, не понял пример, но меня он не убедил. (:

Написать такой ужас можно и с типами:

enum Data {
    SomeData,
    OtherData,
}

fn foo(data: Data) {
    match Data {
        ...
    }
}

По крайней мере, будет видно, что там за данные, а не пытаться угадать, что там передали и что с ним делать.

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

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

Работает. from_str возвращает тип, который умеет десериализоваться. В данном случае serde_json::Value у которого реализована индексация.

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

Не очень понимаю. В каком виде эти «массивы, соответствия, объекты GUI» попадают в программу и что с ними делать надо? Если ничего, а просто передать дальше, то и типизировать не обязательно. Если же всё-таки какое-то взаимодействие есть, то есть и тип.

Если бы 1С был типизированный, то пришлось бы копипастить функцию

Вероятно, не понял пример, но меня он не убедил. (:

Написать такой ужас можно и с типами:

enum Data {
    SomeData,
    OtherData,
}

fn foo(data: Data) {
    match Data {
        ...
    }
}

По крайней мере, будет видно, что там за данные, а не пытаться угадать, что там передали и что с ним делать.