LANGUAGE
บทช่วยสอนนี้เขียนเป็นทั้งภาษาดัตช์และภาษาอังกฤษ เราจะเริ่มต้นด้วยภาษาอังกฤษ
Deze tutorial is zowel in het Engels als in het Nederlands geschreven. Eerst komt Engels.
ENGLISH
INTRODUCTION
คำจำกัดความ : การแบ่งโค้ดออกเป็น functions ช่วยให้นักพัฒนาสามารถสร้างส่วนของโค้ดที่เป็นโมดูล ซึ่งทำหน้าที่ที่กำหนดไว้แล้วกลับไปยังพื้นที่ของโค้ดที่ function ถูก "เรียกใช้"... Functions จะรวบรวมการกระทำหนึ่งอย่างไว้ในที่เดียว เพื่อให้ function นั้นถูกออกแบบและแก้ Debug เพียงครั้งเดียวเท่านั้น
CREATE YOUR FIRST METHOD
ในการสร้าง method หรือ function (ซึ่งคือสิ่งเดียวกัน) เราต้องสร้าง sketch ใหม่ก่อน ใส่ไว้ในโฟลเดอร์ใหม่ชื่อ "Learn Functions" และเปลี่ยนชื่อ sketch เป็น "First Method".
method จะถูก declared เสมอภายนอก voidloop() หรือ voidsetup().
นี่คือตัวอย่างคร่าวๆ ของสิ่งที่ควรจะเป็น:
void MyFunction()
{
// here comes the code of your function, for example :
// Serial.print("This is my function");
}
1) การประกาศ : function นี้เป็นชนิด void ซึ่งจะทำการกระทำหลายอย่าง
2) การตั้งชื่อ : method นี้ชื่อ myFunction() จะต้องมีวงเล็บปีกกาอยู่ท้ายชื่อ
3) โค้ด : ระหว่างวงเล็บปีกกาคือสิ่งที่ function ควรจะทำ
"CALLING" YOUR FIRST METHOD
ในการ "เรียกใช้" function ที่คุณสร้างขึ้นมาใหม่ คุณต้องใส่การอ้างอิงถึงมันไว้ใน "voidloop()" คุณเรียกใช้มันโดยการใส่ชื่อ function ของคุณลงใน "voidloop()"
void loop()
{
MyFunction();
}
void MyFunction()
{
Serial.print("This is my function");
}
เดี๋ยวสิ "`voidloop()`" ดูเหมือน function เลย! ใช่ คุณพูดถูกทั้งหมด มันคือ built in method!
ตอนนี้คุณได้เรียนรู้เกี่ยวกับชนิด "`void`" แล้ว เราจะแนะนำให้คุณรู้จักกับชนิดใหม่ทั้งหมด!
USING FUNCTIONS AS A VARIABLE TYPE
ตอนนี้คุณคุ้นเคยกับชนิด "void" แล้ว คุณจะได้เรียนรู้วิธีใหม่ในการใช้ functions แต่ไม่ต้องกังวล! มันไม่ได้แตกต่างกันมากนัก!
ในตัวอย่างนี้ เราจะคำนวณค่าด้วยสอง variables ที่ถูก declared ไว้แล้ว
int x = 51;
int y = 7;
int outcome;
void setup()
{
}
void loop()
{
outcome = MultyplyNumbers();
}
int MultyplyNumbers()
{
return x * y;
}
งั้น เรามาดูกันว่าอะไรที่แตกต่างจาก method ชนิด "void":
- แทนที่จะเป็น "
void" ก็เป็น "int"
- มี "
return" อยู่ท้าย method
คำถามคือ: ทั้งหมดนี้หมายความว่าอย่างไร?
`int` หมายความว่ามันควรจะ return ค่า integer โดยจะอธิบายเรื่อง `return` เพิ่มเติมในภายหลัง โดยพื้นฐานแล้วหมายความว่า function จะ 'เป็น' ค่า integer ซึ่ง "`outcome`" เป็น integer ดังนั้น function ของเราก็ควรจะ 'เป็น' integer ด้วย
statement ของ `return` คือผลลัพธ์สุดท้ายของ function ซึ่งในกรณีนี้คือ 357
ARGUMENTS FOR A METHOD
ในตัวอย่างที่แล้วเราคูณตัวเลขสองตัว แต่ถ้าเรามีตัวเลขจำนวนมากที่ต้องคูณล่ะ ก็มีวิธีแก้ปัญหานั้น: arguments
argument จะถูกใส่ไว้ระหว่างวงเล็บปีกกาในชื่อ method ของคุณ
int a = 1;
int b = 7;
int c = 5;
int d = 8;
int outcome1;
int outcome2;
int outcome3;
void setup()
{
}
void loop()
{
outcome1 = MultyplyNumbers(a , b); //outcome1 = 7
outcome2 = MultyplyNumbers(c , d); //outcome2 = 40
outcome3 = MultyplyNumbers(outcome1 , outcome2); //outcome3 = 280
}
int MultyplyNumbers(int x , int y)
{
return x * y;
}
ตอนนี้เราได้เพิ่ม arguments เข้าไปแล้ว ดังนั้น function ของเราจึงสามารถใช้กับตัวเลขที่แตกต่างกันได้ ใน method นั้น x และ y คือ arguments ซึ่งสามารถใส่ค่าเข้าไปได้ในขณะที่เรียกใช้ method
CONCLUSION
ผมคิดว่าเราทุกคนคงเห็นด้วยว่า functions ทำให้โค้ดของเรา...
- เป็นระเบียบมากขึ้น
- กระชับมากขึ้น
- "ปราศจากข้อผิดพลาด" มากขึ้น เพราะคุณเขียนมันเพียงครั้งเดียว
- อ่านง่ายขึ้น
หากคุณยังมีคำถามใดๆ โปรดแสดงความคิดเห็นด้านล่าง!
NEDERLANDS
INTRODUCTIE
Definitie : door code in functies op te delen, kan een programmeur modulaire stukjes code maken die een taak uitvoeren en vervolgens terugkeren naar het codegebied van waaruit de functie werd "geroepen" ... Functies coderen één actie op één plaats zodat de functie maar 1 keer moet worden uitgedacht en gedebugd.
MAAK JE EERSTE FUNCTIE
Om een methode of functie te maken (het is hetzelfde), moeten we eerst een nieuwe schets maken. Zet het in een nieuwe map genaamd "Leer functies" en hernoem de schets naar "Eerste functie".
Een methode wordt altijd gedeclareerd buiten de "void loop()" of de "void setup()".
Hier is een voorbeeld van hoe het eruit zou moeten zien:
void MijnFunctie()
{
Serial.print("dit is mijn functie");
}
1) Verklaring: deze functie is een "void", het voert een reeks acties uit.
2) Naamgeving: deze methode heet MijnFunctie() en moet aan het einde van de naam haakjes hebben.
3) Code: Tussen de accolades komt wat de functie moet doen.
JE EERSTE FUNCTIE "ROEPEN"
Om uw nieuw aangemaakte functie op te roepen, moet je er een verwijzing naar plaatsen in de "voidloop ()". Je roept het door de naam van je functie in de "voidloop ()" te zetten.
void loop()
{
MijnFunctie();
}