Explain difference between star and underscore in patterns in the reference manual

This commit is contained in:
Tim Chevalier 2012-04-23 19:22:24 -07:00
parent b04b415e0d
commit 9280d0c090

View File

@ -2177,7 +2177,8 @@ alt x {
The first pattern matches lists constructed by applying `cons` to any head value, and a The first pattern matches lists constructed by applying `cons` to any head value, and a
tail value of `@nil`. The second pattern matches `any` list constructed with `cons`, tail value of `@nil`. The second pattern matches `any` list constructed with `cons`,
ignoring the values of its arguments. ignoring the values of its arguments. The difference between `_` and `*` is that the pattern `C(_)` is only type-correct if
`C` has exactly one argument, while the pattern `C(*)` is type-correct for any enum variant `C`, regardless of how many arguments `C` has.
To execute an `alt` expression, first the head expression is evaluated, then To execute an `alt` expression, first the head expression is evaluated, then
its value is sequentially compared to the patterns in the arms until a match its value is sequentially compared to the patterns in the arms until a match