docs: update match as syntax (#8056)
							parent
							
								
									d4237aa7af
								
							
						
					
					
						commit
						4ffe3d83b8
					
				
							
								
								
									
										16
									
								
								doc/docs.md
								
								
								
								
							
							
						
						
									
										16
									
								
								doc/docs.md
								
								
								
								
							| 
						 | 
					@ -1975,10 +1975,6 @@ fn land(w World) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`match` must have a pattern for each variant or have an `else` branch.
 | 
					`match` must have a pattern for each variant or have an `else` branch.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
There are two ways to access the cast variant inside a match branch:
 | 
					 | 
				
			||||||
- the shadowed match variable
 | 
					 | 
				
			||||||
- using `as` to specify a variable name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```v ignore
 | 
					```v ignore
 | 
				
			||||||
struct Moon {}
 | 
					struct Moon {}
 | 
				
			||||||
struct Mars {}
 | 
					struct Mars {}
 | 
				
			||||||
| 
						 | 
					@ -1997,21 +1993,9 @@ fn pass_time(w World) {
 | 
				
			||||||
        Mars { w.shiver() }
 | 
					        Mars { w.shiver() }
 | 
				
			||||||
        else {}
 | 
					        else {}
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    // using `as` to specify a name for each value
 | 
					 | 
				
			||||||
    match w as var {
 | 
					 | 
				
			||||||
        Mars  { var.shiver() }
 | 
					 | 
				
			||||||
        Venus { var.sweat() }
 | 
					 | 
				
			||||||
        else {
 | 
					 | 
				
			||||||
            // w is of type World
 | 
					 | 
				
			||||||
            assert w is Moon
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Note: shadowing only works when the match expression is a variable.
 | 
					 | 
				
			||||||
It will not work on struct fields, array indexes, or map keys.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Option/Result types and error handling
 | 
					### Option/Result types and error handling
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Option types are declared with `?Type`:
 | 
					Option types are declared with `?Type`:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue