อัลกอริทึมเจเนอริกบนคอลเลกชัน
ใช้อัลกอริทึมเจเนอริก เช่น map , filter และ reduce เพื่อแปลง เลือก และรวมค่า พร้อมเขียนฟังก์ชันของคุณเองบน Sequence ด้วยข้อจำกัดง่าย ๆ
อัลกอริทึมเจเนอริกบนคอลเลกชัน เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 3 บทเรียน
เหตุใดจึงต้องใช้อัลกอริทึมเจเนอริก
Swift มีอัลกอริทึมเจเนอริกที่ทรงพลังสำหรับ Sequence/Collection ได้แก่ map, filter และ reduce นอกจากนี้คุณยังเขียนตัวช่วยเจเนอริกของตนเองได้
map
map ใช้การแปลงกับสมาชิกทุกตัว แล้วส่งคืนอาร์เรย์ใหม่
let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 } // [2, 4, 6]
print(doubled)
let words = ["swift", "kit"]
let caps = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(caps)filter
filter เก็บเฉพาะสมาชิกที่ตรงตามเพรดิเคต
let scores = [45, 72, 88, 53]
let passing = scores.filter { $0 >= 60 } // [72, 88]
print(passing)
let names = ["Ana","Li","Max"]
let short = names.filter { $0.count <= 2 } // ["Li"]
print(short)reduce
reduce รวมลำดับให้เป็นผลลัพธ์เดียว โดยใช้ค่าเริ่มต้นและคลอสเชอร์สำหรับรวมค่า
let sum = [1,2,3,4].reduce(0) { acc, x in acc + x } // 10
print(sum)
let joined = ["a","b","c"].reduce("") { acc, s in acc + s } // "abc"
print(joined)เจเนอริกแบบกำหนดเอง (Sequence)
สร้างอัลกอริทึมเจเนอริกของคุณเองโดยจำกัดอินพุตให้เป็น Sequence และใช้ Element ของมัน
// Works for any Sequence whose Element meets the predicate
func allMatch<S: Sequence>(_ seq: S, _ predicate: (S.Element) -> Bool) -> Bool {
for x in seq { if !predicate(x) { return false } }
return true
}
print(allMatch([2,4,6]) { $0 % 2 == 0 }) // true
print(allMatch(["ab","c"]) { $0.count >= 2 }) // falseเคล็ดลับและรูปแบบ
เคล็ดลับ:
- เลือกใช้คลอสเชอร์ที่อ่านเข้าใจง่าย และตั้งชื่อพารามิเตอร์เมื่อช่วยให้อ่านง่ายขึ้น
- เชื่อม map → filter → reduce เป็นลำดับการประมวลผล
- ย้ายงานหนักออกจากลูปร้อนเพื่อประสิทธิภาพที่ดี
ความหมายของ reduce
ตรวจสอบอย่างรวดเร็ว: การดำเนินการใดรวมลำดับให้เป็นค่าเดียวโดยมีค่าเริ่มต้น
ทบทวน
ทบทวน: ใช้ map เพื่อแปลงข้อมูล, filter เพื่อเลือกข้อมูล และ reduce เพื่อรวมข้อมูล คุณยังเขียนตัวช่วยเจเนอริกของตนเองที่ทำงานกับ Sequence ได้ด้วย
เรียนรู้ Swift ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 122
- บทเรียน
- 409
คำถามที่พบบ่อย
บทเรียน “อัลกอริทึมเจเนอริกบนคอลเลกชัน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “อัลกอริทึมเจเนอริกบนคอลเลกชัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “อัลกอริทึมเจเนอริกบนคอลเลกชัน”
ใช้อัลกอริทึมเจเนอริก เช่น map , filter และ reduce เพื่อแปลง เลือก และรวมค่า พร้อมเขียนฟังก์ชันของคุณเองบน Sequence ด้วยข้อจำกัดง่าย ๆ คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน
บทเรียน “อัลกอริทึมเจเนอริกบนคอลเลกชัน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ฟังก์ชันและชนิดเจเนอริก
- ข้อจำกัด (where) และการอนุมานชนิด
- อัลกอริทึมเจเนอริกบนคอลเลกชัน