我正在编写一个遗传健身程序,我目前正在编写一些代码来计算每个生物体的"适应性"值。
我正在尝试调用一个初始化每个基因型的函数;
function random_genotype_initialisation():void
{
//stuff
}
通过使用我在 C# 和 Java 中习惯的典型方法调用;
random_genotyoe_initialisation();
但是,这将返回错误:"类型错误:错误 #1010:术语未定义且没有属性。
我在其他地方寻求帮助,我发现了一些建议,例如声明一个变量并"调用"它。
var rep = replicate_new_generation();
rep.call();
有什么建议吗?
我假设你的 random_genotype_initialisation() 函数中有一个未定义的值。你是对的,你在as3中调用一个函数,就像在java/c/c++/c#/js/etc中一样。
该代码段有点错误,因为您将replcate_new_generation
的结果存储到 rep
中,但这是一个 void 函数,因此rep
将是 void,因此没有 call():
var rep = replicate_new_generation();//rep = void at this point
rep.call();//call does not exist for rep
你的意思是?
var rep:Function = replicate_new_generation;
rep.call();
这与:replicate_new_generation();
如果在函数中生成错误,也许您应该发布正文的功能也?
C# 与 AS3 非常相似,我不知道你想做什么,也不知道为什么你的代码不起作用,因为你没有提供一个很好的例子。但是,只要可以通过任何正常方式访问函数,您就可以直接调用函数。
比如说,在课堂上你有一个:
class Boo {
private function foo():void {
trace("bar");
}
public function foobar():void {
foo();
}
}
class FoobarCaller {
public function FoobarCaller (){
var asdf:Boo = new Boo();
asdf.foobar();
}
}
这很有效,就像在 C# 或任何其他"标准编码语言"中一样。但是,如果没有更好的问题,就不可能说出您做错了什么