假設我定義的模塊來處理與計量單位向量在F#:簡化F#記錄分配
module Vec
[<Measure>]
type m
type Vector3<[<Measure>] 'a> =
{
X : float<'a>
Y : float<'a>
Z : float<'a>
}
現在我想創建一個變量let
拿着Vector3
。我可以這樣做:
let my_var : Vector3<m> = {X = 1.0<m> ; Y = 1.0<m> ; Z = 1.0<m>};
我必須做很多類似上面的任務,所以我想知道,有沒有什麼辦法,簡化了以前的語法?喜歡的東西:
let my_var : Vector3<m> = { 1.0,1.0,1.0} //this don't compile
let my_var : Vector3<m> = {1.0<m> ; 1.0<m> ; 1.0<m>} //this don't compile either
我想:
- 避免測量單元規格(
1.0<m>
),這可能嗎?是不是m
暗示可以從聲明my_var : Vector3<m>
導出? - 避免使用記錄字段名稱(如第二個示例中所示)。基於命令,編譯器本身是否可以導出記錄的字段名稱?
哦thanks..the新的建議是非常有用的.. – Heisenbug