เรียนรู้การสร้างตัวแปรแบบ Struct (Structure) Part 1

วันนี้เราจะเรียนเรื่องการสร้างตัวแปรแบบโครงสร้างนะครับ ใน Swift เราจะใช้คำสั่งว่า struct

เจ้า struct ที่ว่านี้มีประโยชน์เวลาที่เราต้องการเขียนโปรแกรมที่ทีตัวแปรเกี่ยวเนื่องกันเป็นกลุ่มๆเช่น โปรแกรมเก็บรายละเอียดลูกค้า ที่มีชื่อ เงินเดือน บริษัท.. หรือ เกมแนว RPG ที่จำลองบทบาทตัวเองฮีโร่ไปลุยกับจอมมาร เราก็ต้องเก็บ ชื่อ อาชีพ เผ่าพันธุ์ ค่าประสบการณ์ และอื่นๆอีกมากมาย

มาลองดูวิธีประกาศและใช้งานกันครับ…

ใน Swift เราจะ ใช้คำสั่ง “struct” ตามด้วยชื่อที่ต้องการ และรายละเอียดของ struct จะอยู่ใน { … }

มาดูตัวอย่างแรก

ThaiSwiftClass Begin Struct test 0

ThaiSwiftClass Begin Struct test 0

เราสร้างตัวแปรแบบ struct ชื่อ Salesman โดยมีการเก็บ ชื่อ sName , เงินเดือน dSalary, บริษัท sCompany และ ตำแหน่ง sPosition

ThaiSwiftClass Begin Struct test 1

ThaiSwiftClass Begin Struct test 1

เสร็จแล้วลองมาใช้งานกันดูนะครับ เรา ประกาศ john ให้เป็นตัวแปรแบบ struct ชื่อ Salesman

ThaiSwiftClass Begin Struct test 3

ThaiSwiftClass Begin Struct test 3

ใส่รายละเอียดลงไปและแสดงผล

ThaiSwiftClass Begin Struct Result 3

ThaiSwiftClass Begin Struct Result 3

สร้างตัวแปร paul มาอีกคน (เราจะสร้างกี่ตัวแปรกี่คนก็ได้นะครับ)

ThaiSwiftClass Begin Struct test 2

ThaiSwiftClass Begin Struct test 2

ใส่รายละเอียดและแสดงผล

ThaiSwiftClass Begin Struct test 4

ThaiSwiftClass Begin Struct test 4

ThaiSwiftClass Begin Struct Result 4

ThaiSwiftClass Begin Struct Result 4

struct สามารถเพิ่มลูกเล่นเข้าไปได้อีกนะครับ ทั้ง enum และ function เพื่อเพิ่มคุณลักษณะของงานที่ให้หลากหลายมากขึ้นครับ ลองมาดูตัวอย่างต่อไปกันเลยครับ

ThaiSwiftClass Begin Struct 4

ThaiSwiftClass Begin Struct 4

ให้สร้าง Project สำหรับทดสอบ struct ชื่อ มนุษย์เงินเดือน Salaryman ข้นมา เก็บรายละเอียดต่างๆ

แต่ก่อนจะปิด } เรามาเพิ่มความสามารถให้ struct กันครับ

1.คำสั่ง init : คำสั่ง init จะให้เราใส่ค่าเริ่มต้นให้กับ struct ได้

ThaiSwiftClass Begin Struct init

ThaiSwiftClass Begin Struct init

init() { }

บอกว่าไม่จำเป็นที่จะใส่ค่าเริ่มต้นให้ struct

init(sGetCompany : String) { sCompany = sGetCompany }

เป็นการระบุให้เราใส่ชื่อบริษัทลงไปเมื่อเราสร้าง struct แล้ว

2.เพิ่มคำสั่ง enum ลงไปอีกครับ

ThaiSwiftClass Begin Struct enum

ThaiSwiftClass Begin Struct enum

enum Position นี้ไว้เก็บตำแหน่งของพนักงาน

 

3. สร้าง function ไว้ใน structure ได้

ThaiSwiftClass Begin Struct func

ThaiSwiftClass Begin Struct func

function getSalarybyPosition ทำหน้าที่รับชื่อตำแหน่ง (myPostion) เพื่อหาเงินเดือนที่ได้ครับ

เราใช้ function นี้ควบคู่ไปกับ enum เพื่อให้ค่าที่ได้ไม่หลุดไปจากที่ประกาศไว้ในข้อ 2 ครับ

ThaiSwiftClass Begin Struct func 2

ThaiSwiftClass Begin Struct func 2

function ที่สองชื่อ getdetail() เอาไว้แสดงข้อมูลออกมา

 

มาดูตัวอย่างแรกสำหรับ struct Salaryman นะครับ

ThaiSwiftClass Begin Struct use1

ThaiSwiftClass Begin Struct use1

จากตัวอย่างแรกเราสร้าง mr Anthony เป็น struct Salaryman โดยไม่มีค่าเริ่มต้น init()

ThaiSwiftClass Begin Struct Result 5

ThaiSwiftClass Begin Struct Result 5

จากผลที่ได้ func getSalarybyPosition จะเอา “ceo” เข้าไปหาใน enum ว่ามีหรือไม่ถ้ามีก็ให้ผลออกมาเป็น dSalary ที่ 10,000

ลองดูตัวอย่างที่ 2 ครับ

ThaiSwiftClass Begin Struct use 2

ThaiSwiftClass Begin Struct use 2

จากตัวอย่างที่สองของ mrJohn มีค่าเริ่มแรก ใส่บริษัทไว้ชื่อว่า Mango

ตำแหน่งของ mrJohn คือ Officer เลยได้ค่า Salary 22,000

ThaiSwiftClass Begin Struct Result 6

ThaiSwiftClass Begin Struct Result 6

โครงสร้าง code ทั้งหมด

ThaiSwiftClass struct source

ThaiSwiftClass struct source

ให้ลองฝึกใช้งานดูนะครับ

สำหรับ struct ยังมีรายละเอียดเพิ่มเติมอีกเล็กน้อย พบกันใน struct part 2 นะครับ

 

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

Leave a Reply