operator inline fun Vector2.plus(other: Vector2) = Vector2(x + other.x, y + other.y)
これは1がこれを行うことができます:
val result = Vector2(1.1f, 2.3f) + Vector2(2f, 4f)
は、私ができる方法はありますこのエクステンションをグローバルにして、これを使用するすべてのクラスでこれをインポートする必要はありませんか?
operator inline fun Vector2.plus(other: Vector2) = Vector2(x + other.x, y + other.y)
これは1がこれを行うことができます:
val result = Vector2(1.1f, 2.3f) + Vector2(2f, 4f)
は、私ができる方法はありますこのエクステンションをグローバルにして、これを使用するすべてのクラスでこれをインポートする必要はありませんか?
拡張メソッドはコンパイラによって静的に解決されるため、これを行うことはできません。
インポートを行わないと、コンパイラは拡張機能について認識しません。
をお持ちの場合、インポートはほとんど問題になりません。ありがとうございます! Kotlinコンパイラは 'Vector2'をインポートするときに' Vector2'の拡張メソッドも使いたいと考えています。 – Joschua
拡張メソッドはクラスパスのどこからでも来る可能性があるので、明確な関連付けがなく、コンパイラはすべてのクラスをスキャンする必要があります。また、矛盾する拡張メソッドを持つこともできます。最後に、デザイナーはこれを明示的にしたいと思っていたと思います。 –
IDEを使用している場合、特にIDEA – voddan