You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
type
MinHJ=class
function F(a:integer:=1; b:integer:=2):array of integer;
begin
Result:=Arr(a,b);
end;
end;
function G(a:integer:=1; b:integer:=2):array of integer;
begin
Result:=Arr(a,b);
end;
begin
var oL:=new MinHJ;
var r:=oL.F();
Writeln('F()-> ',r.GetType);
var s:=oL.F;
Writeln('F -> ',s.GetType);
// s.Println выдает, как следствие, ошибку
// а так все работает
var u:=G();
Writeln('G()-> ',u.GetType);
var v:=G;
Writeln('G -> ',v.GetType);
v.Println
end.
Результат работы:
F()-> System.Int32[]
F -> Program1.$delegate0
G()-> System.Int32[]
G -> System.Int32[]
1 2
Ошибки не будет, если параметр в функции F один.
The text was updated successfully, but these errors were encountered:
А как можно еще трактовать var y:=f, если объект f описан, как функция и не описан как либо еще? К тому же f в данном случае - функция с параметрами, только мы их не указали, поскольку устраивают значения по умолчанию.
Есть две трактовки. Первая - вызов функции. Вторая - указатель на функцию. Мы считаем, что в этом случае следует отдавать предпочтение вызову функции. Для указателя тип f надо описывать явно.
Результат работы:
Ошибки не будет, если параметр в функции F один.
The text was updated successfully, but these errors were encountered: