簡體   English   中英

如何在2條記錄的字段上進行模式匹配?

[英]How to do pattern match on fields of 2 records?

type A =
  {
    ...
    id: int;
    ...
  }

我希望我能做到這一點

let Add (x:A) (y:A) =
     match x,y with
      | {x.id=0,y.id=1} -> ...

如果我不關心xy的順序(這樣函數是對稱的)也有任何定義函數的技巧我也不介意參數是tuple (x,y)還是更高訂單函數x,y

另一種語法是:

let add x y =
    match x, y with
    | {id = 0}, {id = 1} | {id = 1}, {id = 0} -> ..
    | _ -> ..

請參閱http://msdn.microsoft.com/en-us/library/dd547125.aspx上的“記錄模式”部分。

let add (x: A) (y: A) =
     match x.id, y.id with
     | 0, 1 | 1, 0 -> (* do some thing *)
     | _ -> (* do some thing else *)

如果您只關心字段,請直接在其上進行模式匹配。 並且您可以使用Or模式來實現對稱功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM