|
@@ -0,0 +1,35 @@
|
|
|
|
+# https://github.com/godotengine/godot/issues/56702
|
|
|
|
+
|
|
|
|
+func test():
|
|
|
|
+ const_default()
|
|
|
|
+ func_result_default()
|
|
|
|
+ # calling again will run the initializer again,
|
|
|
|
+ # as the default is not evaluated at time of defining the function (as in python)
|
|
|
|
+ # but every time the function is called (as in C++)
|
|
|
|
+ func_result_default()
|
|
|
|
+ lots_of_defaults("non-optional")
|
|
|
|
+ # somewhat obscure feature: referencing earlier parameters
|
|
|
|
+ ref_default("non-optional", 42)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func const_default(param=42):
|
|
|
|
+ print(param)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+var default_val := 0
|
|
|
|
+
|
|
|
|
+func get_default():
|
|
|
|
+ default_val += 1
|
|
|
|
+ return default_val
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func func_result_default(param=get_default()):
|
|
|
|
+ print(param)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func lots_of_defaults(nondefault, one=1, two=2, three=get_default()):
|
|
|
|
+ prints(nondefault, one, two, three)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func ref_default(nondefault1, nondefault2, defa=nondefault1, defb=nondefault2 - 1):
|
|
|
|
+ prints(nondefault1, nondefault2, defa, defb)
|