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

ฟังก์ชันลำดับสูง: map, flatMap, compactMap

แปลงลำดับข้อมูลโดยไม่เปลี่ยนแปลงค่า ด้วยฟังก์ชันคอลเลกชันของ Swift

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

ยินดีต้อนรับ

ฟังก์ชันลำดับสูงรับหรือคืนค่าฟังก์ชันอื่น ไลบรารีคอลเลกชันของ Swift สร้างขึ้นบนแนวคิดนี้: `map`, `flatMap`, `compactMap`, `filter`, `reduce`

map — แปลงสมาชิกแต่ละตัว

```swift let nums = [1,2,3,4] let squared = nums.map { $0 * $0 } // [1,4,9,16] let strs = nums.map(String.init) // ["1","2","3","4"] ```

flatMap — แปลงและทำให้แบน

```swift let words = ["hello world","foo bar"] let all = words.flatMap { $0.split(separator:" ").map(String.init) } // ["hello","world","foo","bar"] ```

compactMap — แปลงและตัดค่า nil ออก

```swift let mixed = ["1","two","3"] let nums = mixed.compactMap { Int($0) } // [1,3] ```

การส่งการอ้างอิงฟังก์ชัน

```swift func double(_ n: Int) -> Int { n * 2 } let result = [1,2,3].map(double) // [2,4,6] ``` การอ้างอิงฟังก์ชันสามารถใช้แทนตัวอักษรคลอสเชอร์ได้

การเชื่อมฟังก์ชันลำดับสูง

```swift let total = (1...100) .filter { $0 % 2 == 0 } .map { $0 * $0 } .reduce(0, +) // sum of squares of even numbers 1-100 ```

flatMap กับค่าออปชันแนล

```swift let maybeStr: String? = "42" let maybeInt = maybeStr.flatMap { Int($0) } // Optional(42) let nil2: String? = nil let also = nil2.flatMap { Int($0) } // nil ```

ฟังก์ชันลำดับสูงแบบกำหนดเอง

```swift func applyTwice(_ f: (T) -> T, _ value: T) -> T { f(f(value)) } print(applyTwice({ $0 * 2 }, 3)) // 12 ```

sorted(by:) ในฐานะ HOF

```swift let words = ["banana","apple","cherry"] let sorted = words.sorted { $0.count < $1.count } // ["apple","banana","cherry"] ``` `sorted(by:)` รับฟังก์ชันเปรียบเทียบ

ภาคปฏิบัติ: ประมวลผลข้อมูลผู้ใช้

```swift struct User { var name: String; var score: Int } let users = [User(name:"A",score:80),User(name:"B",score:45),User(name:"C",score:92)] let topNames = users.filter { $0.score >= 80 }.map { $0.name }.sorted() // ["A","C"] ```

ตรวจสอบอย่างรวดเร็ว

`compactMap` ทำอะไรที่ `map` ปกติทำไม่ได้

สรุปทบทวน

ประเด็นสำคัญ: • `map` — แปลงสมาชิกทุกตัว • `flatMap` — แปลงและทำผลลัพธ์ที่ซ้อนกันให้แบน • `compactMap` — แปลงและตัดค่า nil ออก • ส่งการอ้างอิงฟังก์ชันโดยตรง: `.map(String.init)` • เชื่อมต่อกันเพื่อสร้างสายการประมวลผลข้อมูลที่อ่านง่าย ถัดไป: การประกอบฟังก์ชันและสายการประมวลผล

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

บทเรียน “ฟังก์ชันลำดับสูง: map, flatMap, compactMap” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ฟังก์ชันลำดับสูง: map, flatMap, compactMap”

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

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

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

บทเรียน “ฟังก์ชันลำดับสูง: map, flatMap, compactMap” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ฟังก์ชันบริสุทธิ์และการออกแบบที่ไม่มีผลข้างเคียง
  2. ฟังก์ชันลำดับสูง: map, flatMap, compactMap
  3. การประกอบฟังก์ชันและสายส่งข้อมูล
  4. ลำดับข้อมูลแบบขี้เกียจเพื่อประสิทธิภาพ
← กลับไปที่ Swift Academy