0Pricing
Swift Academy · บทเรียน

Map/Filter/Reduce และลำดับแบบ lazy

ใช้ map / filter / reduce เพื่อแปลง เลือก และรวมค่า จากนั้นเพิ่ม .lazy เพื่อเลื่อนการทำงานและหลีกเลี่ยงอาร์เรย์ชั่วคราว

Map/Filter/Reduce และลำดับแบบ lazy เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 3 บทเรียน

แนวคิดหลัก

อัลกอริทึมหลัก:

  • การแปลง: แปลงสมาชิกแต่ละรายการ
  • การกรอง: เก็บสมาชิกที่ตรงกับเงื่อนไข
  • reduce: รวมให้เป็นค่าเดียว
  • การประเมินแบบเลื่อนเวลา: เลื่อนการทำงานออกไปเพื่อหลีกเลี่ยงอาร์เรย์ชั่วคราว

การแปลง

การแปลงจะแปลงสมาชิกแต่ละรายการและส่งคืนอาร์เรย์ใหม่

let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 }        // [2, 4, 6]
print(doubled)

let words = ["swift", "kit"]
let upper = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(upper)

การกรอง

การกรองจะเก็บสมาชิกที่เงื่อนไขให้ผลเป็นจริง

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 total = [1,2,3,4].reduce(0) { acc, x in acc + x }   // 10
print(total)

let joined = ["a","b","c"].reduce("") { $0 + $1 }             // "abc"
print(joined)

การทำงานแบบเลื่อนเวลาตามต้องการ

การประเมินแบบเลื่อนเวลาจะสร้างกระบวนการประมวลผลต่อเนื่องที่เลื่อนการทำงานออกไป: การดำเนินการจะทำงาน ขณะคุณใช้สมาชิก (เช่น ผ่าน prefix, first หรือการวนซ้ำ)

let range = 1...10
let lazyPipeline = range.lazy
    .map { x in print("map", x); return x * x }
    .filter { x in print("filter", x); return x % 2 == 0 }

// Only the first 3 results are needed:
let firstThree = Array(lazyPipeline.prefix(3))
print("result:", firstThree)
// Notice how only the work needed for 3 elements ran.

เคล็ดลับ

เคล็ดลับ:

  • เชื่อมการทำงาน แปลง → กรอง → reduce เพื่อให้กระแสข้อมูลชัดเจน
  • เพิ่ม การประเมินแบบเลื่อนเวลา เมื่อใช้เพียงบางส่วนของกระบวนการประมวลผลต่อเนื่อง หรือต้องการหลีกเลี่ยงข้อมูลชั่วคราว
  • สร้างเป็นค่าจริงด้วย Array(...) เฉพาะเมื่อต้องการอาร์เรย์ที่เป็นรูปธรรม

ความหมายของการประเมินแบบเลื่อนเวลา

ตรวจสอบสั้น ๆ: .lazy มีผลอย่างไรต่อการเชื่อมการทำงานของการแปลง/การกรอง

สรุป

สรุป: ใช้ การแปลงเพื่อแปลงข้อมูล ใช้ การกรองเพื่อเลือกข้อมูล และใช้ reduceเพื่อรวมข้อมูล เพิ่ม การประเมินแบบเลื่อนเวลาเพื่อประเมินตามต้องการและลดการจัดสรรหน่วยความจำ

คำถามที่พบบ่อย

บทเรียน “Map/Filter/Reduce และลำดับแบบ lazy” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Map/Filter/Reduce และลำดับแบบ lazy” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Map/Filter/Reduce และลำดับแบบ lazy”

ใช้ map / filter / reduce เพื่อแปลง เลือก และรวมค่า จากนั้นเพิ่ม .lazy เพื่อเลื่อนการทำงานและหลีกเลี่ยงอาร์เรย์ชั่วคราว คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน

บทเรียน “Map/Filter/Reduce และลำดับแบบ lazy” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม

ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ลำดับชั้น Sequence/Collection
  2. Map/Filter/Reduce และลำดับแบบ lazy
  3. ตัววนซ้ำแบบกำหนดเองและเคล็ดลับด้านประสิทธิภาพ
← กลับไปที่ Swift Academy