私は F# の初心者で、C++ のバックグラウンドを持っています。ジェネリック型 (int、float など) の単純なベクトル クラスを作成しようとしていますが、デフォルトのコンストラクターで問題が発生します。値をゼロに初期化したいのですが、これを行うには、具体的なゼロをジェネリック型にキャストする必要がありますが、これを行う方法がわかりません。
おそらく、いくつかのコードが役立つかもしれません。これが私がこれまでに持っているものです:
type Vector3D<'T> (x :'T, y: 'T, z: 'T) =
member this.x = x
member this.y = y
member this.z = z
new() = Vector3D<'T>(0,0,0) // what goes here?
強調表示された行で多くのことを試しましたが、コンパイラーを満足させることができないようです。たとえば、ゼロをゼロにVector3D('T 0, 'T 0, 'T 0)
キャストする必要があると思ったのですが、うまくいきませんでした。int
'T
基本的なものが欠けているのでしょうか、それとも正しい構文を取得するための単なるケースですか?