Как Сделать Функцию, Чтобы Она Принимала Неизвестное Количество Аргуме

Тема в разделе "Lotus - Программирование", создана пользователем XiNoID, 24 июн 2013.

  1. XiNoID

    XiNoID Well-Known Member

    Регистрация:
    4 сен 2007
    Сообщения:
    94
    Симпатии:
    0
    Собственно вот. В хелпе не нашел...
    необходим чистый лотусскрипт. Без джавы...
    Есть мысли сделать массивом, но пока они до конца не оформились. Может есть какое встроенное средство, которое я упустил?
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    никак, в скрипте нет такого. Но можно обойти.
    Делаешь входной параметр - Variant, а передаешь массив или список. Каждый элемент массива/списка - параметр.
    типа так:
    Код (LotusScript):
    Sub MySub(paramList as variant)
    if paramList(0) = "2" then ...
    if len(paramlist(1)) > 32 then ...
    end sub
    Надеюсь идея ясна.

    Добавлено: только типы в массиве должны быть одинаковые.
     
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    раз формировать массив все-равно придется заранее - то и создать класс (унутре будет механизм доступа к параметрам), кот. и будет приниматься ф-цией...
    а ваще - зачем такое нужно в ЛС? :)
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    для кривых рук самое оно! :)
     
  5. Darkhan

    Darkhan Lotus team
    Lotus team

    Регистрация:
    14 дек 2012
    Сообщения:
    97
    Симпатии:
    4
  6. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    ToxaRat
    lmike
    Можно сделать некий RunFunction, который запускает функцию через Execute.
    Передаешь туда имя библиотеки, название функции и список-массив параметров.
     
  7. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    сделать можно, только я не вижу смысла использовать устаревших ЯП, при наличии java
     
  8. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    lmike
    Дело вкуса, конкретной задачи, предпочтения и "Истории продукта".
    Многие решения написаны давно и на LS, переводить их на Java не выгодно, особенно для внутренних нужд.
    Спорить устарел LS или нет, просто не хочу. Да, IBM не стремиться его развивать, делает упор на java.
    ИМХО: Но от этого он не умер, да и не скоро я думаю умрет.
     
  9. alexas

    alexas Well-Known Member

    Регистрация:
    10 июн 2009
    Сообщения:
    215
    Симпатии:
    0
    Scald , каковы условия задачи и что должно быть в итоге?
    В общем случае, при однотипных "x" и разнотипных "a" F(x1,x2,...,xn,a1,...,an) всегда эквивалентно {F(x1,a1...an),F(x2,a1...an),...,F(xn,a1...an)} и реализация такой функции становится очевидной.
    Так как поставлен вопрос - это похоже на попытку создания "СуперМегаФункции", которую можно применять где угодно, и для чего угодно (утрирую конечно :)).
    Для подобных задач, как справидливо заметил lmike, обычно применяются "классы".
    Может, в конкретном случае, подойти к решению как-то попроще?

    "Сделай настолько просто, насколько это возможно, но не проще" - (Albert Einstein)
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    переводить... - а что мешает интегрировать? :) и просто больше не писать нового кода на ЛС
    поддерживать - да, но писать новое...
    ведь посыл топика - а дайтека мне как в джава, но без оной, т.о. изобретается велик с квадратными колесами, при полном отсутствии необходимости
     
  11. XiNoID

    XiNoID Well-Known Member

    Регистрация:
    4 сен 2007
    Сообщения:
    94
    Симпатии:
    0
    Спасибо! Первый ответ мне помог. А необходима эта функция для уменьшения писанины ^_^
     
Загрузка...

Поделиться этой страницей