使用override
关键字作为变量赋值的前缀可以防止该变量的值再次被更改,除非通过另一个override
语句。这是 Starlark 不支持的功能。
可以通过在重新分配变量之前检查变量是否已定义来删除它。例如,替换:
override MY_VAR := foo
MY_VAR := bar
# MY_VAR is foo here
和:
MY_VAR := foo
# Generally this would be in a separate file that is included
ifndef MY_VAR
MY_VAR := bar
enddef
# MY_VAR is foo here