2

私は 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

基本的なものが欠けているのでしょうか、それとも正しい構文を取得するための単なるケースですか?

4

2 に答える 2