[英]Error multipling float and int with F#
我已經定義了以下記錄:
type Ball =
{
center : Vector3<m>
radius : float32<m>
color : Microsoft.Xna.Framework.Color
}
我正在嘗試以這種方式創建一個Ball列表:
let BallRadius = 0.2<m>
let list =
[ for i in 0 .. 9 ->
{
center = { X = BallRadius + (float i) * BallRadius * 2.0 ; Y = 0.0<m>; Z = 0.0<m>}; //1 error
radius = BallRadius; //1 error
color = Microsoft.Xna.Framework.Color.White
}
]
似乎在第一種情況下我是一個int,如果是浮點數,我不能相乘。 在第二種情況下,我不能將float指定給float32。 我怎么解決這個問題?
center = BallRadius + (float i) * BallRadius * 2.0
radius = (float32 BallRadius) * 1.0f<m>
有效,但我不確定它是最慣用的。 除此之外,我不清楚如何添加兩個BallRadius
可以獲得Vector3<m>
,除非你的矢量只是一個浮點數......
[<Measure>] type m
type Vector3<[<Measure>] 'a> =
{
X : float32<'a>
Y : float32<'a>
Z : float32<'a>
}
type Ball =
{
center : Vector3<m>;
radius : float32<m>;
}
let BallRadius = 0.2f<m>
let list = [ for i in 0..9 -> { center = { X = BallRadius + (float32 i) * BallRadius * 2.0f; Y = 0.0f<m>; Z = 0.0f<m>}; radius = BallRadius;} ]
這對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.