程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 理解Delphi的類(十) - 深入方法(2)

理解Delphi的類(十) - 深入方法(2)

編輯:Delphi

//要點6: Result 可以參與運算, "函數名"不可以

function MyFun(x,y: Integer): Integer;
begin
  Result := x + y;
  Result := Result * 2;
end;

//要點7: 不僅如此, Result 還有更靈活的運用

function MyFun(b: Byte): Char;
begin
//Result := Char(b); {我們當然可以這樣寫}
  Byte(Result) := b;  {這樣也行}
end;
{System 中就有這樣一個函數}
function TObject.ClassType: TClass;
begin
  Pointer(Result) := PPointer(Self)^;
end;

//要點8: 忘了寫返回值的函數, 也可以當過程用(沒有人會這樣做, 但 Delphi 竟然 也允許)

function MyFun(var x: Integer): string;
begin
  x := x + 1;
end;
{調用}
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  i := 2;
  MyFun(i);
  ShowMessage(IntToStr(i)); {3}
end;

//要點9: 沒有參數的過程或函數, 在調用時可以省略 (); 也可以帶著

function MyFun: string;
begin
  Result := 'ok';
end;
{調用}
procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
begin
  s := MyFun;
  ShowMessage(s); {ok}
  s := MyFun();
  ShowMessage(s); {ok}
end;

//要點10: 過程和函數都可以有一個或多個默認參數; 但必須在非默認參數後面

function MyFun(s1: string; s2: string='好人'): string;
begin
  Result := s1 + s2;
end;
{調用}
procedure TForm1.Button1Click(Sender: TObject);
var
  str1,str2: string;
begin
  str1 := '萬一';
  str2 := '壞蛋';
  ShowMessage(MyFun(str1));   {萬一好人}
  ShowMessage(MyFun(str1,str2)); {萬一壞蛋}
end;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved