0

次のコードは Javascript にコンパイルされ、正常に実行されます。http://try.haxe.org/#8C940

abstract Comparable(Dynamic) from Float from String {
  @:op(a<b) static function lt(a, b):Bool;
}

class Test {
  public static function min<T:Comparable>(t:T, t2:T):T { 
    return (t:Comparable) < (t2:Comparable) ? t : t2; 
  }
  static function main() {
    var a = min(1.1,2.2); //ok
    $type(a); //Float
    trace(a); //1.1
    var b = min(1,2); //ok
    $type(b); //Int
    trace(b); //1
    var c = min("a","b"); //ok
    $type(c); //String
    trace(c); //a

    //following will produce compilation error, correctly
    //min(0, "a");
  }
}

しかし、neko 用にコンパイルすると、次のエラーが発生します。

Main.hx:7: characters 12-13 : Unexpected :
Main.hx:7: characters 12-13 : Unexpected :
Uncaught exception - load.c(181) : Module not found : main.n

問題のエラーは次の行です。

    return (t:Comparable) < (t2:Comparable) ? t : t2; 

言語機能が一方のターゲットでは機能するのに、もう一方のターゲットでは機能しない理由はありますか? nekoの問題を解決するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

1

コンパイラのバージョンが競合していると思います。最新の開発ビルドを試すことができますか: http://hxbuilds.s3-website-us-east-1.amazonaws.com/builds/haxe/

(ここにリンクがあります: http://haxe.org/manual/haxe3#git-builds -- 編集: このページはもう存在しませんが、ビルド ページはhttp://build.haxe から入手できます。組織

于 2014-02-24T23:12:47.270 に答える