Example_cel_Null showcases null literal and null equality checks as documented in https://celbyexample.com/null/
()
| 98 | // Example_cel_Null showcases null literal and null equality checks |
| 99 | // as documented in https://celbyexample.com/null/ |
| 100 | func Example_cel_Null() { |
| 101 | exprs := []string{ |
| 102 | `null`, |
| 103 | `val == null`, |
| 104 | `val != null`, |
| 105 | } |
| 106 | |
| 107 | for _, expr := range exprs { |
| 108 | prg, err := cel.Compile(expr, cel.Variable("val", cel.DynType)) |
| 109 | if err != nil { |
| 110 | log.Fatalf("cel.Compile() error for %q: %v", expr, err) |
| 111 | } |
| 112 | out, _, err := prg.Eval(map[string]any{"val": nil}) |
| 113 | if err != nil { |
| 114 | log.Fatalf("prg.Eval() error for %q: %v", expr, err) |
| 115 | } |
| 116 | fmt.Printf("%s -> %v\n", expr, out) |
| 117 | } |
| 118 | |
| 119 | // Output: |
| 120 | // null -> 0 |
| 121 | // val == null -> true |
| 122 | // val != null -> false |
| 123 | } |