Beyonder wrote:
О да, конечно
Если что, то это был сарказм.Вижу два способа это сделать.
Первый. Более эстетично выглядящий, и вероятно подойдёт в 99% случаев:
Code:
sub selectFunction(name,param1,param2,param3)
if (name == 'funct1') then
return funct1(param1,param2,param3)
endif
if (name == 'funct2') then
return funct2(param1,param2,param3)
endif
if (name == 'funct3') then
return funct3(param1,param2,param3)
endif
endsub
sub...
var funct = 'funct1'
selectFunction(funct,1,2,3)
endsub
Второй. Всё работает через задницу, зато позволяет добавлять любое количество функций не изменяя кода:
Code:
Sub func1()
var param1 = UO.GetGlobal('param1')
var param2 = UO.GetGlobal('param2')
var param3 = UO.GetGlobal('param3')
...
endsub
Sub callFunc(name,param1,param2,param3)
UO.SetGlobal('param1',param1)
UO.SetGlobal('param2',param2)
UO.SetGlobal('param3',param3)
UO.Exec('exec '+name)
endsub
sub...
var func = 'func1'
callFunc(func,1,2,3)
endsub
Ага, спасибо, жаль что нельзя, надо Yoko учесть это в следующем релизе, как и вообще - указатели как таковые..
На данный момент у меня как в первом варианте.

Но душа не спокойна при виде одинаковых кусков кода, у меня там аж 7 функций

Ах да, кстати - эти мои 7 функций - эмуляция работы с глобальными массивами

Это тоже неплохо бы добавить в следующий релиз (глобальные массивы, то бишь).