Functions
ซักพักแบบทดสอบเริ่มทำให้รู้สึกเมื่อย อะไรจะหันขวาบ่อยขนาดนั้น นี่ถ้าต้องหันขวาซักร้อยครั้ง ก็ต้องพิมพ์คำสั่ง turnLeft() ตั้ง 300 ครั้งเลยสิ! แต่ว่า... Swift บอกไม่เป็นไร เรามารวมคำสั่งหันซ้าย 3 อัน และสร้างเป็นคำสั่งใหม่ชื่อ turnRight() กันเถอะ!
ไวยากรณ์ คือ โครงสร้างพื้นฐานของประโยค
โครงสร้าง คือ การวางโครง เพื่อสร้างบางอย่างให้เกิดขึ้น
โครงสร้างของ Function
func + ชื่อฟังก์ชัน + เครื่องหมายวงเล็บ () + เครื่องหมายวงเล็บปีกกาและชุดคำสั่ง { ชุดคำสั่ง }
func ย่อมาจากคำว่า function
ชื่อฟังก์ชัน ตั้งชื่ออะไรก็ได้ที่ไม่ซ้ำกับสิ่งที่มีอยู่ Swift แนะนำให้เราตั้งชื่อที่สื่อความหมายว่าฟังก์ชันนี้มีจุดประสงค์ใด
การตั้งชื่อฟังก์ชัน
Camel Case คือ รูปแบบการตั้งชื่อฟังก์ชันเหมือนลักษณะเนินของหลังอูฐ ถ้าชื่อมีเพียงหนึ่งคำ เช่น turn ให้เขียนด้วยตัวอักษรเล็กทั้งหมด ถ้าชื่อมีหลายคำรวมกัน ให้เรียงต่อกันโดยไม่มีช่องว่าง ตั้งแต่คำที่สองเป็นต้นไปให้ขึ้นต้นคำด้วยตัวอักษรใหญ่ เรียกการเขียนในรูปแบบนี้ว่า คาเมลเคส (Camel Case)
ตัวอย่างชื่อฟังก์ชัน
- หันขวา turnRight
- หันขวาแล้วเดินหน้า turnRightAndMoveForward
เครื่องหมายวงเล็บ () ในบทนี้ ให้ใส่วงเล็บเปล่าๆ ไม่ต้องระบุอะไร ใน Learn to Code 2 จะมีบทเรียนสอนการระบุข้อกำหนดในวงเล็บอีกครั้งหนึ่ง
{ ชุดคำสั่ง } เขียนชุดคำสั่งในวงเล็บปีกกา
ดังนั้น อธิบายฟังก์ชันด้านล่างได้ว่า
ตัวอย่างที่ 1
func turnRight() {turnLeft()
turnLeft()
turnLeft()
ชื่อฟังก์ชัน คือ turnRight แปลว่า หันขวา
การเรียกใช้ ให้เขียนว่า turnRight()
การทำงาน ฟังก์ชันนี้สั่งให้หันซ้าย turnLeft() ทั้งหมด 3 ครั้ง
ตัวอย่างที่ 2
func turnAroundAndMoveForward() {turnLeft()
turnLeft()
moveForward()
ชื่อฟังก์ชัน คือ turnAroundAndMoveForward แปลว่า กลับหลังหันและเดินหน้า
การเรียกใช้ ให้เขียนว่า turnAroundAndMoveForward()
การทำงาน ฟังก์ชันนี้สั่งให้หันซ้าย turnLeft() 2 ครั้ง เพื่อกลับหลังหัน แล้วเดินหน้า moveForward() 1 ก้าว
ตัวอย่างที่ 3
turnAroundAndMoveForward()
turnRight()
{
ชื่อฟังก์ชัน คือ turnAroundMoveForwardAndTurnRight แปลว่า กลับหลังหัน เดินหน้า และหันขวา
การเรียกใช้ ให้เขียนว่า turnAroundMoveForwardAndTurnRight()
การทำงาน ฟังก์ชันนี้ไปเรียกใช้ฟังก์ชันชื่อ turnAround ในตัวอย่างที่ 2 เมื่อทำงานตามชุดคำสั่งแรกเสร็จ จึงเรียกใช้ฟังก์ชันชื่อ turnRight() ในตัวอย่างที่ 1 เป็นลำดับสุดท้าย
รูปแบบที่มีฟังก์ชันอื่นซ้อนอยู่ข้างใน เรียกว่า เนส (Nest) หรือ เนสติ้งแพทเทิร์น (Nesting pattern)
Nest แปลว่า การสร้างรัง ซ้อนกัน คือการวางสิ่งอื่นซ้อนข้างในสิ่งหนึ่งนั่นเอง
ขอบคุณภาพจาก Swift Playgrounds
-- ดีบี --