User Tools

Site Tools


tutorial:procedureandfunction

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
tutorial:procedureandfunction [2019/01/04 15:14]
admin
tutorial:procedureandfunction [2019/01/04 16:03]
admin [By Reference]
Line 124: Line 124:
 การส่งผ่าน Parameters เข้าไปใน Procedure/​Function มี 2 แบบ คือ By Value และ By Reference การส่งผ่าน Parameters เข้าไปใน Procedure/​Function มี 2 แบบ คือ By Value และ By Reference
   * **By Value** คือ ส่งเฉพาะค่าของ Parameter เข้าไปใน Procedure/​Function โดยหากมีการเปลี่ยนแปลงค่าใดๆใน Procedure/​Function นั้น จะ__**ไม่เปลี่ยนแปลง**__ต่อค่าที่แท้จริงของ Parameter สำหรับการรับค่าแบบปกติ  ​   * **By Value** คือ ส่งเฉพาะค่าของ Parameter เข้าไปใน Procedure/​Function โดยหากมีการเปลี่ยนแปลงค่าใดๆใน Procedure/​Function นั้น จะ__**ไม่เปลี่ยนแปลง**__ต่อค่าที่แท้จริงของ Parameter สำหรับการรับค่าแบบปกติ  ​
-  * **By Reference** คือ ​ส่งเฉพาะค่าของ Parameter เข้าไปใน Procedure/​Function โดยหากมีการเปลี่ยนแปลงค่าใดๆใน Procedure/​Function นั้น จะ__**เปลี่ยนแปลง**__ค่าที่แท้จริงของ Parameter ด้วย+  * **By Reference** คือ หากมีการเปลี่ยนแปลงค่าใดๆของ Parameter ​ใน Procedure/​Function นั้น จะ__**เปลี่ยนแปลง**__ค่าที่แท้จริงของ Parameter ด้วย
  
 ====By Value==== ====By Value====
 การใส่ตัวแปรแบบทั่วไป คือ การส่งผ่าน Parameter ในแบบ By Value การใส่ตัวแปรแบบทั่วไป คือ การส่งผ่าน Parameter ในแบบ By Value
-  ​+ 
 +<sxh delphi;>  ​
   procedure DoItA(X:​integer);​   procedure DoItA(X:​integer);​
   begin   begin
Line 134: Line 135:
     writeln('​X = ',X);     writeln('​X = ',X);
   end;   end;
- +</​sxh>​ \\
-อย่างไรก็ตาม เราสามารถระบุ const หน้า Parameter ได้เช่นกัน  +
- +
-  procedure DoItA(const X:​integer);​ +
-  begin +
-    X:=10; +
-    writeln('​X = ',​X);​ +
-  end;+
  
 ====By Reference==== ====By Reference====
 เราสามารถใส่ var หน้า Parameter เพื่อให้กลายเป็น By Reference ได้ดังนี้ เราสามารถใส่ var หน้า Parameter เพื่อให้กลายเป็น By Reference ได้ดังนี้
-  ​+ 
 +<sxh delphi;>  ​
   procedure DoItB(var X:integer);   procedure DoItB(var X:integer);
   begin   begin
Line 151: Line 146:
     writeln('​X = ',X);     writeln('​X = ',X);
   end;   end;
 +</​sxh> ​
 +
 +
 +<hidden Example-6: Passing Parameters (By Value, By Reference)>​
 +<sxh delphi;>
 +program Passing_Param;​
 +
 +var A,​B:​integer;​
 +
 +procedure DoItA(X:​integer);​ //By Value
 +begin
 +  X:=100;
 +  writeln('​DoItA,​ X = ',X);
 +end;
 +
 +procedure DoItB(var X:integer); //By Reference
 +begin
 +  X:=200;
 +  writeln('​DoItB,​ X = ',X);
 +end;
 +
 +begin
 +  A:=1;
 +  B:=2;
 +
 +  writeln('​A = ',A);
 +  writeln('​B = ',B);
 +
 +  DoItA(A);
 +  DoItB(B);
 +
 +  writeln('​A = ',A);
 +  writeln('​B = ',B);
 +
 +  readln();
 +end. 
 +</​sxh> ​
 +
 +Compiled Results:
 +
 +  A = 1
 +  B = 2
 +  DoItA, X = 100
 +  DoItB, X = 200
 +  A = 1
 +  B = 200
 +    ​
 +</​hidden>​
tutorial/procedureandfunction.txt · Last modified: 2019/01/06 16:54 by admin