params_default_values.gd 873 B

1234567891011121314151617181920212223242526272829303132333435
  1. # https://github.com/godotengine/godot/issues/56702
  2. func test():
  3. const_default()
  4. func_result_default()
  5. # calling again will run the initializer again,
  6. # as the default is not evaluated at time of defining the function (as in python)
  7. # but every time the function is called (as in C++)
  8. func_result_default()
  9. lots_of_defaults("non-optional")
  10. # somewhat obscure feature: referencing earlier parameters
  11. ref_default("non-optional", 42)
  12. func const_default(param=42):
  13. print(param)
  14. var default_val := 0
  15. func get_default():
  16. default_val += 1
  17. return default_val
  18. func func_result_default(param=get_default()):
  19. print(param)
  20. func lots_of_defaults(nondefault, one=1, two=2, three=get_default()):
  21. prints(nondefault, one, two, three)
  22. func ref_default(nondefault1, nondefault2, defa=nondefault1, defb=nondefault2 - 1):
  23. prints(nondefault1, nondefault2, defa, defb)