การสร้างชุดคำสั่ง (Function)

   การสร้างชุดคำสั่ง Function
   การสร้างชุดคำสั่ง หรือ Function จะช่วยให้เราสามารถรวบรวม คำสั่งต่างๆเข้าไว้ด้วยกัน แล้วเรียกใช้เมื่อต้องการ
   ประเภทและขั้นตอนการเรียกต่างๆของการเรียกชุดใช้คำสั่งใน Swift มีอยู่หลายแบบให้เลือกใช้แล้วแต่การทำงานของโปรแกรมเรานะครับ มาดูกันทีละแบบที่สำคัญๆนะครับ

ประเภทของ Function และวิธีการประกาศ

1.ชุดคำสั่งเดี่ยวๆ ไม่มีการใส่ค่า และ ไม่มีการคืนค่าจากชุดคำสั่ง

  รูปแบบการประกาศ

   func ชื่อชุดคำสั่งA()

   {

     ประกาศตัวแปร….หรือใส่เงื่อนไขและการทำงานของโปรแกรมลงไป

    }

  วิธีเรียกใช้ 

    ชื่อชุดคำสั่ง A()

ลองดูตัวอย่าง

ThaiSwiftClass Function no parameter
ThaiSwiftClass Function no parameter

   อธิบาย : เราสร้างชุดคำสั่งชื่อ Hello() โดยใน Function นี้ จะทำหน้าที่พิมพ์ข้อความออกทางหน้าจอ 3 บรรทัด

โดยเวลาเราเรียกใช้ ก็แค่เรียก Hello() ก็จะได้ผลดังต่อไปนี้

ThaiSwiftClass Function no parameter result
ThaiSwiftClass Function no parameter result

 

2.ชุดคำสั่งที่มีการใส่ค่า (เรียกว่า Argument หรือ Parameter) และ ไม่มีการคืนค่าจากชุดคำสั่ง

รูปแบบการประกาศ

    func ชื่อชุดคำสั่งA(ชื่อตัวแปรและประเภทของตัวแปร)

    {

      ประกาศตัวแปร….หรือใส่เงื่อนไขและการทำงานของโปรแกรมลงไป

      โดยนำตัวแปรของชุดคำสั่งมาประกอบ

     }

    วิธีเรียกใช้ 

ชื่อชุดคำสั่ง A(ชื่อตัวแปรและประเภทของตัวแปร)

ThaiSwiftclass Function declare variable

ThaiSwiftClass Function one parameter
ThaiSwiftClass Function one parameter

     อธิบาย : เราสร้างชุดคำสั่งชื่อ Greeting(_sName : String) โดยใน Function Greeting นี้ จะทำหน้าที่พิมพ์ข้อความทักทาย _sName ที่เราใส่เข้าไป และต้องเป็นประเภทข้อความเท่านั้น (String)

     วิธีเรียกใช้ คำสั่ง Greeting(_sName : String)

2.1 Greeting(sName) : เราได้ประกาศตัวแปร sName ชนิดข้อความไว้ กำหนดค่าเริ่มต้นเป็น “Swift” (จะสั่งเกตุว่าเรากำหนด : String เพื่อให้ตัวแปร sName เป็น แบบ “Type Safe” )

2.2 ใช้คำสั่ง println เพื่อเรียกอีกชุดคำสั่งนึงคือ Greeting(“Vit”) ก็ได้เหมือนกันเพราะต้องการแสดงผลทางหน้าจออยู่แล้ว

มาดูผลการทำงานกันครับ

ThaiSwiftClass Function one parameter result
ThaiSwiftClass Function one แบบใช้ตัวแปร sName
ThaiSwiftClass Function one parameter result 2
ThaiSwiftClass Function แบบใส่ค่าตรงๆเข้าไป

 

3.ชุดคำสั่งที่มีการใส่ค่า และ มีการคืนค่าจากชุดคำสั่ง

รูปแบบการประกาศ

   func ชื่อชุดคำสั่งA(ชื่อตัวแปรและประเภทของตัวแปร) -> ประเภทของผลที่ Function ส่งมา

   {

     ประกาศตัวแปร….หรือใส่เงื่อนไขและการทำงานของโปรแกรมลงไป

     โดยนำตัวแปรของชุดคำสั่งมาประกอบ

      return ประเภทของผลที่เกิดจาก FunctionA

   }

วิธีเรียกใช้ 

ตัวแปรประเภทเดียวกับ FunctionA = FunctionA(ชื่อตัวแปรและประเภทของตัวแปร) 

ThaiSwiftClass Function return value 1
ThaiSwiftClass Function return value 1

 อธิบาย : ชุดคำสั่งชื่อ getGrade(iScore : Int) -> String  นี้ ต้องการใส่ค่าตัวเลขคะแนนสอบลงไป (iScore) เพื่อจะแสดงผลเป็นค่า Grade ออกมา (String)

     วิธีเรียกใช้และแสดงผล

 ตัวอย่างที่ 1

ThaiSwiftClass Function return value 2
ThaiSwiftClass Function return value 2

เราประกาศตัวแปร sResult เป็นชนิด String ขึ้นมารองรับผลการทำงานของชุดคำสั่งหรือ Function getGrade ที่คืนค่าออกมาเป็นชนิน String เช่นเดียวกัน

sResult = getGrade(50) เราใส่ค่า 50 ลงไปเพื่อให้ getGrade นำไปประมวลและส่งค่า grade ออกมาตามเงื่อนไขที่อยู่ใน Function getGrade

หรือ จะใช้คำสั่ง println ก็ได้เพราะใช้พิมพ์ข้อมูลประเภท String เหมือนกัน

ThaiSwiftClass Function return value ผลจาก sResult
ThaiSwiftClass Function return value ผลจาก sResult
ThaiSwiftClass Function return ผลจาก println
ThaiSwiftClass Function return ผลจาก println

 

ตัวอย่างที่ 2  ลองใส่ 2 Arguments เข้าไป

ThaiSwiftClass Function two parameters
ThaiSwiftClass Function two parameters

อธิบาย : Function rectangle จะรับค่า ยาว (dLength) ประเภท ตัวเลขจุดทศนิยม และ กว้าง (dWidth) เป็นประเภทเดียวกัน เพื่อคำนวนพิ้นที่สี่เหลี่ยมผืนผ้า (กว้าง x ยาว) และให้ผลเป็น Double

ผลการทำงาน : จริงๆเราจะประกาศตัวแปรมารองร้บก่อนเพื่อเอาไปใช้ต่อไปก็ได้ เหมือนตัวอย่าง 1 

ThaiSwiftClass Function two parameters result
ThaiSwiftClass Function two parameters result

 

มาถึงวิธีการสร้าง Function แบบสุดท้ายที่จะนำเสนอในบทนี้กันนะครับ

4.ชุดคำสั่งที่มีการใส่ค่า และ มีการคืนค่าจากชุดคำสั่งมากกว่า 1 ตัวแปร

รูปแบบการประกาศ

     func ชื่อชุดคำสั่งA(ชื่อตัวแปรและประเภทของตัวแปร) -> (ประเภทของผลที่ Function ส่งมา1,ประเภทของผลที่ Function ส่งมา2…n)

     {

       ประกาศตัวแปร….หรือใส่เงื่อนไขและการทำงานของโปรแกรมลงไป

       โดยนำตัวแปรของชุดคำสั่งมาประกอบ

        return (ประเภทของผลที่เกิดจาก FunctionA 1,ประเภทของผลที่เกิดจาก FunctionA 2,..n)

     }

วิธีเรียกใช้ 

(ตัวแปรประเภทเดียวกับ FunctionA1,ตัวแปรประเภทเดียวกับ FunctionA2,..n) = FunctionA(ชื่อตัวแปรและประเภทของตัวแปร) 

ThaiSwiftClass Function two parameters return two values
ThaiSwiftClass Function two parameters return two values

การประกาศ Function แบบสุดท้ายนี้ดูเหมือนจะเข้าใจยาก แต่มันมีรูปแบบของมันอยู่ครับ ลองตามไปทีละบรรทัดนะครับ

4.1 เราประกาศ dcCurrency เป็นแบบ Dictionary (ดูรายละเอียดจากบทที่แล้ว)

4.2 สร้าง Function getCurrency เพื่อดึงค่าเงินของแต่ละประเทศออกมาแสดง โดยจะรับค่าประเทศ (sInputCurr : String) ,ค่า Dictionary ลงไป โดยจะให้ Function นี้แสดงผลรหัสประเทศและชื่อประเทศออกมา

4.3  ตรวจสอบว่าค่ารหัสประเทศที่ใส่เข้ามามีอยู่ใน Dictionary (if let _sInput = dcCurr[sInputCurr]

ถ้าเจอก็จะคืนค่ารหัสออกไปพร้อมชื่อหน่วยเงินประเทศนั้นๆ ลงในตัวแปร sCur และ sCurDesc ตามลำดับ

ถ้าไม่เจอจะแสดงผล Error และ Invalid Currency Key ลงในตัวแปร sCur และ sCurDesc ตามลำดับ

4.4  ส่งค่า (return) sCur และ sCurDesc ออกมา

มาดูการเรียกใช้และผลการทำงานของ Function นี้กันครับ

ThaiSwiftClass Function two parameters return two values 2
ThaiSwiftClass Function two parameters return two values 2
ThaiSwiftClass Function two parameters return two values result
ThaiSwiftClass Function two parameters return two values result

   จากผลการทำงาน บรรทัดแรกเป็นใส่จากค่าตัวแปร sCurId และ sCurDesc

บรรทัดที่สองใช้คำสั่ง println ออกมาและจะเห็นว่าผลนั้นจะอยู่ในวงเล็บ เพราะยังไม่มีตัวแปรใดๆมารองรับ..

 

สำหรับบทนี้จะยาวหน่อยนะครับเพราะอยากอธิบายให้ละเอียดยิบกันเลยทีเดียว หวังว่าคงลองเอาไปฝึกใช้กันให้คล่องๆนะครับ เพราะจะว่าไปน่าจะเป็นส่วนสำคัญอันดับต้นๆของการเขียนโปรแกรมให้อ่านง่ายและกระชับเลยทีเดียว

แนะนำติชมได้ตลอดนะครับ ที่ thaiswiftclass@gmail.com และทาง https://www.facebook.com/thaiswiftclass

 

 

 

 

1 thought on “การสร้างชุดคำสั่ง (Function)

Leave a Reply