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

XiNoID

Well-Known Member
04.09.2007
94
0
#1
Собственно вот. В хелпе не нашел...
необходим чистый лотусскрипт. Без джавы...
Есть мысли сделать массивом, но пока они до конца не оформились. Может есть какое встроенное средство, которое я упустил?
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#2
никак, в скрипте нет такого. Но можно обойти.
Делаешь входной параметр - Variant, а передаешь массив или список. Каждый элемент массива/списка - параметр.
типа так:
Код:
Sub MySub(paramList as variant)
if paramList(0) = "2" then ...
if len(paramlist(1)) > 32 then ...
end sub
Надеюсь идея ясна.

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 486
365
#3
раз формировать массив все-равно придется заранее - то и создать класс (унутре будет механизм доступа к параметрам), кот. и будет приниматься ф-цией...
а ваще - зачем такое нужно в ЛС? :)
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#6
ToxaRat
lmike
Можно сделать некий RunFunction, который запускает функцию через Execute.
Передаешь туда имя библиотеки, название функции и список-массив параметров.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 486
365
#7
ToxaRat
lmike
Можно сделать некий RunFunction, который запускает функцию через Execute.
Передаешь туда имя библиотеки, название функции и список-массив параметров.
сделать можно, только я не вижу смысла использовать устаревших ЯП, при наличии java
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#8
lmike
Дело вкуса, конкретной задачи, предпочтения и "Истории продукта".
Многие решения написаны давно и на LS, переводить их на Java не выгодно, особенно для внутренних нужд.
Спорить устарел LS или нет, просто не хочу. Да, IBM не стремиться его развивать, делает упор на java.
ИМХО: Но от этого он не умер, да и не скоро я думаю умрет.
 

alexas

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

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 486
365
#10
lmike
Дело вкуса, конкретной задачи, предпочтения и "Истории продукта".
Многие решения написаны давно и на LS, переводить их на Java не выгодно, особенно для внутренних нужд.
Спорить устарел LS или нет, просто не хочу. Да, IBM не стремиться его развивать, делает упор на java.
ИМХО: Но от этого он не умер, да и не скоро я думаю умрет.
переводить... - а что мешает интегрировать? :) и просто больше не писать нового кода на ЛС
поддерживать - да, но писать новое...
ведь посыл топика - а дайтека мне как в джава, но без оной, т.о. изобретается велик с квадратными колесами, при полном отсутствии необходимости
 

XiNoID

Well-Known Member
04.09.2007
94
0
#11
Спасибо! Первый ответ мне помог. А необходима эта функция для уменьшения писанины ^_^