Вверх ↑
Пакеты 
Кодогенерация 
RTCG 
Операторы - method

method
Описание
Динамическое создание метода класса. Создает в текущем классе элемента новый метод с заданным именем и набором параметров.

method(‹name›[,‹name›,...])
[‹block›]
end

При этом внутри метода обращение к параметрам должно осуществляться через поля объекта args. Например:

method('test', "arg1", "arg2")
trace(args.arg1 + args.arg2)
end
BB-code статьи для вставки
Всего комментариев: 1
Nic2017-11-23 14:35:43
Можно ли узнать имя метода, находясь в теле этого метода?
Например в пакете CNET для этого пришлось добавить дополнительную функцию:
method(prop)
this.fname = cgt.get_func_name()
if(pos(this.fname, ".", 0))
return(this.obj_prop_init && '.' && code(this.fname))
else
return(this.obj_prop_init && code(this.fname))
end
end
Хотелось бы использовать такой синтаксис для этого:
method(prop)
this.fname = prop.name
...
end

или

method(prop)
this.fname = get(method)
...
end
Также интересует возможность использования данного оператора для реализации методов левых точек:
func init
for(k = 0; k ‹ this.numworks; k++)
doname = this.pt_work(k).name
this.setfield('doname', doname)
method(doname, data, index)
this.doname = cgt.get_func_name()
blk.println(this.codename, '.doWork(', args.index, ', ', args.data, ');')
end
end
end
Сейчас такая конструкция работает, но без передачи входных параметров в метод
Комментарий
...