mirror of
https://github.com/polserver/polserver
synced 2026-08-13 08:23:08 -04:00
48 lines
1.4 KiB
Text
48 lines
1.4 KiB
Text
|
|
// Test method calls with default args and variadic args
|
||
|
|
|
||
|
|
class Foo()
|
||
|
|
function Foo( this )
|
||
|
|
endfunction
|
||
|
|
|
||
|
|
function MethodA( this, arg0 )
|
||
|
|
return $"Foo::MethodA this={this} arg0={arg0}";
|
||
|
|
endfunction
|
||
|
|
|
||
|
|
function MethodB( this, arg0, arg1 := "default.a1" )
|
||
|
|
return $"Foo::MethodB this={this} arg0={arg0} arg1={arg1}";
|
||
|
|
endfunction
|
||
|
|
|
||
|
|
function MethodC( this, arg0, arg1 := "default.a1", arg2 := "default.a2" )
|
||
|
|
return $"Foo::MethodC this={this} arg0={arg0} arg1={arg1} arg2={arg2}";
|
||
|
|
endfunction
|
||
|
|
|
||
|
|
function MethodD( this, arg0, arg1 := "default.a1", arg2 := "default.a2", args ... )
|
||
|
|
return $"Foo::MethodD this={this} arg0={arg0} arg1={arg1} arg2={arg2} args={args}";
|
||
|
|
endfunction
|
||
|
|
endclass
|
||
|
|
|
||
|
|
var obj := Foo();
|
||
|
|
|
||
|
|
print( obj.MethodA() );
|
||
|
|
print( obj.MethodA( "a0" ) );
|
||
|
|
print( obj.MethodA( "a0", "a1" ) );
|
||
|
|
print( "-" );
|
||
|
|
print( obj.MethodB() );
|
||
|
|
print( obj.MethodB( "a0" ) );
|
||
|
|
print( obj.MethodB( "a0", "a1" ) );
|
||
|
|
print( obj.MethodB( "a0", "a1", "a2" ) );
|
||
|
|
print( "-" );
|
||
|
|
print( obj.MethodC() );
|
||
|
|
print( obj.MethodC( "a0" ) );
|
||
|
|
print( obj.MethodC( "a0", "a1" ) );
|
||
|
|
print( obj.MethodC( "a0", "a1", "a2" ) );
|
||
|
|
print( obj.MethodC( "a0", "a1", "a2", "a3" ) );
|
||
|
|
print( "-" );
|
||
|
|
print( obj.MethodD() );
|
||
|
|
print( obj.MethodD( "a0" ) );
|
||
|
|
print( obj.MethodD( "a0", "a1" ) );
|
||
|
|
print( obj.MethodD( "a0", "a1", "a2" ) );
|
||
|
|
print( obj.MethodD( "a0", "a1", "a2", "a3" ) );
|
||
|
|
print( obj.MethodD( "a0", "a1", "a2", "a3", "a4" ) );
|
||
|
|
print( obj.MethodD( "a0", "a1", "a2", "a3", "a4", "a5" ) );
|