Model

เริ่มจากโมเดลกันก่อน

ให้เราสร้างไฟล์ใหม่ ด้วยการคลิ๊กขวาที่โฟลเดอร์ TodoApp ใน Project navigator เลือก New File...

จากนั้นเลือก Swift File กด Next

ตั้งชื่อไฟล์เป็น Todo แล้วกด create

Xcode จะแสดงไฟล์ที่เพิ่งสร้างให้เรา

Todo.swift

ให้เราเขียนโค้ดดังนี้

บรรทัดที่ 3 - 27 เป็นการประกาศ Class Todo ที่เก็บรวบรวม TodoItem บรรทัดที่ 29 - 41 เป็น Class TodoItem

บรรทัดที่ 6 - 8 เรียกว่า compute property สามารถ get ค่าได้อย่างเดียวไม่สามารถ set ค่าได้เนื่องจากไม่สามารถเก็บค่าไว้ได้ โดยเมื่อเรียกจะได้จำนวน TodoItem ที่เก็บไว้ใน items กลับไป

บรรทัดที่ 10 - 12 เป็นการประกาศฟังก์ชั่นที่รับ Int และคืนเป็น TodoItem ใช้ในการ get TodoItem ที่เก็บไว้ใน items ตาม index ที่ระบุ

บรรทัดที่ 14 - 16 เป็นการประกาศฟังก์ชั่นที่รับ TodoItem ใช้ในการเก็บ TodoItem เพิ่ม โดยเพิ่มลงไปใน index ที่ 0 ของ items (Prepend)

บรรทัดที่ 18 - 20 เป็นการประกาศฟังก์ชั่นที่ใช้ลบ TodoItem ตาม index ที่ระบุ

บรรทัดที่ 22 - 26 เป็นการประกาศฟังก์ชั่นที่ใช้ในการหา index ของ TodoItem ที่อยู่ใน items

TodoItem.swift

เนื่องจาก Todo.swift มีคลาส TodoItem ปนอยู่ด้วยจะเป็นการดีกว่าที่เราจะแยกมันออกมาเป็นอีกไฟล์นึงแทน ให้เราสร้างไฟล์ใหม่ชื่อ TodoItem.swift

แล้วย้ายโค้ดมาที่นี่

ฟังก์ชั่นใน Swift (เพิ่มเติม)

การลดรูปฟังก์ชั่นใน Swift

จากโค้ดนี้ในบรรทัดที่ 2 - 4 สามารถลดรูปได้แบบนี้

ตัด return ออก เนื่องจากมีโค้ดบรรทัดเดียว ผลลัพธ์บรรทัดนั้นจึงเป็นผลลัพธ์ของฟังก์ชัน

ตัด -> Bool ออก เนื่องจากเรารู้จากฟังก์ชั่น index แล้วว่าต้องรับ ฟังก์ชั่นที่ return Bool

ตัด (todoItem) in ออกแทนที่ parameter แรกที่รับ ด้วย $0

ตัด (where: ) ออก parameter สุดท้ายถ้าเป็นฟังก์ชั่น สามารถละได้

Last updated