スカラでは、Vector2D
というクラスがあり、それに対して暗黙の変換を行いたいと思います。現在、私はこの機能をVector2D
に入れています:implicit def fromFloatTuple(tuple: (Float, Float)): Vector2D = new Vector2D(tuple._1, tuple._2)
スカラの暗黙関数による呼び出し関数
私は以下をうまくいくことができますval x: Vector2D = (1f, 1f)
。しかし、私はval x: Float = (1f, 1f).length()
のようなことはできません(明らかにVector2Dの長さが定義されています)。なぜこれは機能しません、私はそれがval x: Float = fromFloatTuple((1f, 1f)).length()
のようなものに変換されることを期待しますが、そうではありません。 Scalaでこの効果をどうやって得るのですか?
また、私はこの関数が他の数値型も受け入れるようにするにはどうすればいいですか?すべての数値型の組み合わせごとに関数を作成しないでください(2Dベクトルの問題ではなく4Dベクトル)。
このリンクは質問に答えるかもしれないが、ここでは答えの重要な部分が含まれており、参考のためにリンクを提供することをお勧めします。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 16747601) – stevieb
フィードバックに感謝します! –
異なる数値型であるため、 '(1f、1)'のような場合は失敗します。回避策は複数の汎用引数を宣言することです。 –