Swift Academy · บทเรียน

อาร์เรย์สองมิติและคอลเลกชันซ้อนกัน

ทำงานกับอาร์เรย์ของอาร์เรย์และทำให้แบนด้วย flatMap กับ compactMap

บทเรียน 4 จาก 412 ขั้นตอน

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

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

อาร์เรย์ 2 มิติและคอลเลกชันซ้อนกันใช้จำลองกริด ตาราง กราฟ และข้อมูลแบบลำดับชั้น Swift รองรับโครงสร้างเหล่านี้โดยธรรมชาติ เพียงซ้อนชนิดอาร์เรย์เข้าด้วยกัน

การประกาศอาร์เรย์ 2 มิติ

```swift var grid: [[Int]] = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] print(grid[1][2]) // 6 ```

การเปลี่ยนแปลงสมาชิกที่ซ้อนกัน

```swift var matrix = [[0,0,0],[0,0,0],[0,0,0]] matrix[1][1] = 1 // [[0,0,0],[0,1,0],[0,0,0]] ```

การสร้างกริด 2 มิติด้วยการแปลงค่า

```swift let rows = 3, cols = 4 let grid = (0..

การวนซ้ำในอาร์เรย์ 2 มิติ

```swift for row in grid { for val in row { print(val, terminator: " ") } print() } ``` หรือใช้ดัชนีเมื่อจำเป็นต้องเปลี่ยนแปลงค่า: ```swift for r in grid.indices { for c in grid[r].indices { ... } } ```

flatMap เพื่อทำให้แบนราบ

```swift let nested = [[1,2,3],[4,5],[6]] let flat = nested.flatMap { $0 } // [1,2,3,4,5,6] ``` มีประโยชน์เมื่อจำเป็นต้องประมวลผลสมาชิกทั้งหมดเป็นลำดับเดียว

อาร์เรย์แบบแถวไม่เท่ากัน

อาร์เรย์ 2 มิติของ Swift ไม่จำเป็นต้องมีความยาวของแต่ละแถวเท่ากัน: ```swift let jagged: [[Int]] = [[1],[2,3],[4,5,6]] print(jagged[2].count) // 3 ``` แต่ละแถวเป็นอาร์เรย์อิสระจากกัน

อาร์เรย์ของพจนานุกรม

```swift let users: [[String: Any]] = [ ["name": "Alice", "age": 30], ["name": "Bob", "age": 25] ] for user in users { print(user["name"] ?? "?") } ```

อาร์เรย์ของโครงสร้าง

ควรใช้โครงสร้างที่ระบุชนิดแทน `[String: Any]`: ```swift struct User { let name: String; let age: Int } var users = [User(name:"Alice",age:30), User(name:"Bob",age:25)] let sorted = users.sorted { $0.age < $1.age } ```

กริดแบบเบาบางด้วยพจนานุกรม

สำหรับข้อมูลแบบเบาบาง ให้ใช้พจนานุกรมแทนอาร์เรย์ซ้อนกัน: ```swift var sparse: [SIMD2: String] = [:] sparse[SIMD2(0,0)] = "start" sparse[SIMD2(9,9)] = "end" ``` ค้นหาได้ในเวลา O(1) และไม่สิ้นเปลืองหน่วยความจำกับเซลล์ว่าง

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

`nested.flatMap { $0 }` คืนค่าอะไรเมื่อใช้กับ `[[1,2],[3,4]]`

ทบทวน

ประเด็นสำคัญ: • `[[T]]` — ประกาศอาร์เรย์ 2 มิติ และเข้าถึงด้วย `[row][col]` • `.flatMap { $0 }` — ทำให้อาร์เรย์ซ้อนกันแบนราบ • ใช้โครงสร้างแทน `[String: Any]` เพื่อความปลอดภัยด้านชนิดข้อมูล • อาร์เรย์แบบแถวไม่เท่ากันใช้งานได้ แต่ละแถวเป็นอิสระจากกัน • ใช้ `Dictionary` สำหรับกริดแบบเบาบาง จบบทเรียนแล้ว! บทถัดไป: การดำเนินการ CRUD ของพจนานุกรม
เริ่มต้นได้ฟรี

เรียนรู้ Swift ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
122
บทเรียน
409

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

บทเรียน “อาร์เรย์สองมิติและคอลเลกชันซ้อนกัน” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “อาร์เรย์สองมิติและคอลเลกชันซ้อนกัน”

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

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

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

บทเรียน “อาร์เรย์สองมิติและคอลเลกชันซ้อนกัน” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การสร้างและเปลี่ยนแปลงอาร์เรย์
  2. การเรียงลำดับ การค้นหา และการแบ่งส่วน
  3. Map, Filter และ Reduce บนอาร์เรย์
  4. อาร์เรย์สองมิติและคอลเลกชันซ้อนกัน
← กลับไปที่ Swift Academy