assistance-engine/docs/developer.avapframework.com/chapter9_43.md

1.3 KiB

AS Patterns

An AS pattern in AVAP is used to bind an OR pattern to a name. This allows you to match a value with an OR pattern and simultaneously capture it under a specified name for further use. The syntax for an AS pattern is:

as_pattern ::= or_pattern "as" capture_pattern

When an AS pattern is used, if the OR pattern succeeds, the subject is bound to the name specified by the capture pattern, and the AS pattern itself succeeds.

Here's an example of how to use AS patterns:

match value:
    case 1 | 2 | 3 as x:
        print(f"Matched a number: x")
    case "hello" | "world" as greeting:
        print(f"Matched a greeting: greeting")
    case _:
        print("No match")

In this example:

  • The first case matches if value is 1, 2, or 3. The matched value is bound to the name x , which is then used in the print statement.
  • The second case matches if value is "hello" or "world". The matched value is bound to the name greeting , which is then used in the print statement.
  • The last case is a catch-all pattern that executes if none of the previous patterns match.

AS patterns are useful for capturing matched values under a name while using OR patterns, allowing for more flexible and readable pattern matching in your code.