Swift Academy · บทเรียน

อัลกอริทึมเจเนอริกบนคอลเลกชัน

ใช้อัลกอริทึมเจเนอริก เช่น map , filter และ reduce เพื่อแปลง เลือก และรวมค่า พร้อมเขียนฟังก์ชันของคุณเองบน Sequence ด้วยข้อจำกัดง่าย ๆ

บทเรียน 3 จาก 38 ขั้นตอน

อัลกอริทึมเจเนอริกบนคอลเลกชัน เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ฟังก์ชันและชนิดเจเนอริก
  2. ข้อจำกัด (where) และการอนุมานชนิด
  3. อัลกอริทึมเจเนอริกบนคอลเลกชัน
← กลับไปที่ Swift Academy