السلام عليكم شكراً على طرح هدا الكتاب
هده free pascal
لفت انتباهي هذا الكود ولم اهضم operator*
كود :
{$mode objfpc}{$H+}{$J-}
uses StrUtils;
operator* (const S: string; const A: Integer): string;
begin
Result := DupeString(S, A);
end;
begin
Writeln('bla' * 10);
end
(01-05-2018, 08:54 PM)delphi17 كتب : [ -> ]لفت انتباهي هذا الكود ولم اهضم operator*
كود :
{$mode objfpc}{$H+}{$J-}
uses StrUtils;
operator* (const S: string; const A: Integer): string;
begin
Result := DupeString(S, A);
end;
begin
Writeln('bla' * 10);
end
في هذا الفرع Operator Overloading:
يتحدث عن امكانية اعادة تحميل او تعريف لمعامل موجود مسبق في اللغة, ك *,-,/,+,=:, < وغيرها, بحيث يمكنك استخدامه من نوع بيانات غير المحددة له مسبقا, وفي مثاله هو استخدم دالة موجودة مسبقا وهي dupestring لتكرار قيمة نصية بالعدد الذي تحدده, هكذا كلما استعملت المعامل * مع قيمة نصية فستكرر من خلال الدالة dupestring.
والله اعلم يمكنك البحث اكثر عن operator overloading وستجد شروح مفصلة عنه.
[quote pid='45182' dateline='1525278772']
في هذا الفرع Operator Overloading:
يتحدث عن امكانية اعادة تحميل او تعريف لمعامل موجود مسبق في اللغة, ك *,-,/,+,=:, < وغيرها, بحيث يمكنك استخدامه من نوع بيانات غير المحددة له مسبقا, وفي مثاله هو استخدم دالة موجودة مسبقا وهي dupestring لتكرار قيمة نصية بالعدد الذي تحدده, هكذا كلما استعملت المعامل * مع قيمة نصية فستكرر من خلال الدالة dupestring.
والله اعلم يمكنك البحث اكثر عن operator overloading وستجد شروح مفصلة عنه.
شكراً هذا ايضا ما توصلة اليه وقد جربتها على lazaurs/freepascal لكن يبقى هنك لبس
[/quote]