让模式绑定,有人可以用例子来解释吗?

时间:2016-05-20 11:20:52

标签: types pattern-matching

我正在阅读理论并遇到以下

 let p = t in t   //pattern binding   

记录模式的示例

  let {l1=x1:S1, l2=x2:S2} = E1 in (x1 x2) 

  // l1,l2 are lebels, x1,x2 are variables, S1 and S2 are types.

我理解让绑定,但不熟悉上面的表格,所以我有点困惑。谁能给我一个真实的例子并解释一下?我在线搜索,但没有看到与上面的模式绑定。

1 个答案:

答案 0 :(得分:1)

对于Swift(例如,Rust似乎也是如此)你可以使用这样的东西:

let (x1, x2) = (0.5, 1) //where x1 would be Double, x2 would be Int based on type inference

在这里,您将值绑定到匹配对,即括号中左侧的第一个值绑定到右括号中的第一个值,依此类推。

然后,您可以通过引用x1或x2来使用像常规常量一样的绑定值:

print(x1) // prints 0.5