godot/modules/gdscript/tests/scripts/runtime/features/variadic_functions.gd
2025-06-09 21:53:05 +03:00

38 lines
831 B
GDScript

class A:
func f(x: int) -> void:
print(x)
class B extends A:
func f(x: int, ...args: Array) -> void:
prints(x, args)
class C extends B:
func f(x: int, y: int = 0, ...args: Array) -> void:
prints(x, y, args)
class D extends C:
func f(...args: Array) -> void:
print(args)
func test_func(x: int, y: int = 0, ...args: Array) -> void:
prints(x, y, args)
var test_lambda := func (x: int, y: int = 0, ...args: Array) -> void:
prints(x, y, args)
func test():
for method in get_method_list():
if str(method.name).begins_with("test_"):
print(Utils.get_method_signature(method))
test_func(1)
test_func(1, 2)
test_func(1, 2, 3)
test_func(1, 2, 3, 4)
test_func(1, 2, 3, 4, 5)
test_lambda.call(1)
test_lambda.call(1, 2)
test_lambda.call(1, 2, 3)
test_lambda.call(1, 2, 3, 4)
test_lambda.call(1, 2, 3, 4, 5)