0

私は遺伝的フィットネス プログラムを書いており、現在、各生物の「フィットネス」値を計算するコードを書いています。

各遺伝子型を初期化する関数を呼び出そうとしています。

function random_genotype_initialisation():void 
{
    //stuff
}

C# と Java で慣れ親しんだ典型的なメソッド呼び出しを使用します。

random_genotyoe_initialisation();

ただし、これはエラーを返します:「TypeError: エラー #1010: 用語は定義されておらず、プロパティがありません。」

私は助けを求めて他の場所を探しましたが、変数を宣言してそれを「呼び出す」などの提案を見つけました。

var rep = replicate_new_generation();
rep.call();

助言がありますか?

4

2 に答える 2

0

random_genotype_initialisation() 関数内に未定義の値があると思います。正解です。java/c/c++/c#/js/etc と同じように as3 で関数を呼び出します。

replcate_new_generationintoの結果を保存するため、スニペットは少し間違っていますrepが、これは void 関数であるため、void にrepなるため、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(); 関数内でエラーが発生している場合は、関数の本体も投稿する必要がありますか?

于 2012-11-29T10:55:56.297 に答える
0

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# やその他の「標準コーディング言語」と同じように機能します。しかし、より良い質問がなければ、何が間違っているのかを言うことは不可能です。

于 2012-12-08T17:18:11.603 に答える