说我有以下变量
myClassName = 'myClass';
我想调用 myClass 构造函数的一个实例,即。
myObject = myClass(arg1, arg2, ..., argn);
假设我想使用 myClassName 来调用它。
myObject = (myClassName)(arg1, arg2, ..., argn); % something like that
我怎么做?
知道了。我发现这是:
myFunc = str2func(myClassName);
myClass = myFunc(arg1, arg2, ..., argn);
做这项工作。
eval
也可以使用:
eval([myClassName '(arg1,arg2,arg3)']);
初始变量是否myClassName
真的需要是一个字符串?我将其实现为:
myClassName = @myClass;
myObject = myClassName(arg1, arg2, arg3);
str2func
这与使用selfanswer中的调用非常相似,只是没有字符串操作,这会让某些人(例如,我)感觉不对。