2010-07-28 49 views

回答

8

只能有一个当每个箭头/结果后卫,所以像这样的工作:

let id1 = 0 

match p1, p2 with 
| Fluid, Particle id2 
| Interface _, Particle id2 when id1 = id2 -> doSomething() 
| _ -> doSomething() 

(注意在这种情况下,在这两个项目还是必须绑定同一组标识符使在这两种情况下没有IDENTIFER留下未初始化)

或可选择地添加第二个动作/结果:

match p1, p2 with 
| Fluid, Particle id2 when id1 = id2 -> doSomething() 
| Interface _, Particle id2 when id1 = id2 -> doSomething() 
| _ -> doSomething() 
+0

谢谢您的回答。知道何时警卫对模式组中的所有案件有效是很好的事情。 – 2010-07-28 09:17:33