doc: update `match` docs (#5753)
							parent
							
								
									5ea17ad2d4
								
							
						
					
					
						commit
						ec82fa77c5
					
				
							
								
								
									
										28
									
								
								doc/docs.md
								
								
								
								
							
							
						
						
									
										28
									
								
								doc/docs.md
								
								
								
								
							|  | @ -652,7 +652,13 @@ match os { | |||
|     'linux'  { println('Linux.') } | ||||
|     else     { println(os) } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| A match statement is a shorter way to write a sequence of `if - else` statements. | ||||
| When a matching branch is found, the following statement block will be run. | ||||
| The else branch will be run when no other branches match. | ||||
| 
 | ||||
| ```v | ||||
| number := 2 | ||||
| s := match number { | ||||
|     1    { 'one' } | ||||
|  | @ -661,9 +667,7 @@ s := match number { | |||
| } | ||||
| ``` | ||||
| 
 | ||||
| A match statement is a shorter way to write a sequence of `if - else` statements. | ||||
| When a matching branch is found, the following statement block will be run, and the final expression will be returned. | ||||
| The else branch will be evaluated when no other branches match. | ||||
| A match expression returns the final expression from each branch. | ||||
| 
 | ||||
| ```v | ||||
| enum Color { | ||||
|  | @ -674,15 +678,16 @@ enum Color { | |||
| 
 | ||||
| fn is_red_or_blue(c Color) bool { | ||||
|     return match c { | ||||
|         .red  { true  } | ||||
|         .blue { true  } | ||||
|         else  { false } | ||||
|         .red   { true  } | ||||
|         .blue  { true  } | ||||
|         .green { false } | ||||
|     } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| A match statement can also be used to branch on the variants of an `enum` | ||||
| by using the shorthand `.variant_here` syntax. | ||||
| by using the shorthand `.variant_here` syntax. An `else` branch is not allowed | ||||
| when all the branches are exhaustive. | ||||
| 
 | ||||
| ### Defer | ||||
| 
 | ||||
|  | @ -1287,12 +1292,13 @@ fn pass_time(w World) { | |||
|         Mars { w.shiver() } | ||||
|         else {} | ||||
|     } | ||||
|     // using `as` to specify a variable name | ||||
|     match w as expr { | ||||
|         Venus { expr.sweat() } | ||||
|     // 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 Venus | ||||
|             assert w is Moon | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue