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

พารามิเตอร์ค่าเริ่มต้นและพารามิเตอร์จำนวนไม่แน่นอน

กำหนดค่าเริ่มต้นและรองรับอาร์กิวเมนต์จำนวนไม่แน่นอน

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

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

ค่าเริ่มต้นของพารามิเตอร์ช่วยให้ผู้เรียกละอาร์กิวเมนต์ที่ไม่จำเป็นต้องกำหนดเองได้ พารามิเตอร์แบบแปรผันจำนวนรับอาร์กิวเมนต์ได้ไม่จำกัดจำนวน ทั้งสองอย่างช่วยลดโค้ดส่วนเกินและปรับปรุง API

ค่าเริ่มต้นของพารามิเตอร์

```swift func log(_ message: String, level: String = "INFO") { print("[\(level)] \(message)") } log("Server started") // [INFO] Server started log("Disk full", level: "ERROR") // [ERROR] Disk full ``` ต้องวางค่าพารามิเตอร์เริ่มต้นไว้หลังพารามิเตอร์ที่จำเป็น

ค่าเริ่มต้นหลายค่า

```swift func connect(host: String, port: Int = 443, useTLS: Bool = true) {} connect(host: "api.example.com") connect(host: "api.example.com", port: 8080) connect(host: "api.example.com", port: 80, useTLS: false) ``` ผู้เรียกสามารถแทนที่พารามิเตอร์ที่มีค่าเริ่มต้นชุดใดก็ได้

พารามิเตอร์แบบแปรผันจำนวน

พารามิเตอร์แบบแปรผันจำนวนรับค่าศูนย์ค่าหรือมากกว่าที่มีชนิดเดียวกัน: ```swift func sum(_ numbers: Int...) -> Int { numbers.reduce(0, +) } print(sum(1, 2, 3)) // 6 print(sum(10, 20, 30, 40)) // 100 ``` ภายในฟังก์ชัน `numbers` จะเป็นอาร์เรย์ `[Int]`

พารามิเตอร์แบบแปรผันจำนวนมีได้เพียงหนึ่งตัวต่อฟังก์ชัน

Swift อนุญาตให้แต่ละฟังก์ชันมีพารามิเตอร์แบบแปรผันจำนวนได้เพียงหนึ่งตัวเท่านั้น (ไม่จำเป็นต้องอยู่ตัวสุดท้ายตั้งแต่ Swift 5.4): ```swift func format(_ template: String, args: String...) -> String { var result = template for arg in args { result = result.replacingOccurrences(of: "%s", with: arg) } return result } ```

การใช้ค่าเริ่มต้นร่วมกับพารามิเตอร์แบบแปรผันจำนวน

```swift func build(separator: String = ", ", _ items: String...) -> String { items.joined(separator: separator) } build("apple", "banana", "cherry") // "apple, banana, cherry" build(separator: " | ", "one", "two", "three") // "one | two | three" ```

การส่งอาร์เรย์ให้พารามิเตอร์แบบแปรผันจำนวน

คุณไม่สามารถส่งอาร์เรย์ให้พารามิเตอร์แบบแปรผันจำนวนได้โดยตรง: ```swift let nums = [1, 2, 3] // sum(nums) ❌ — won't compile ``` คลี่ค่าด้วย `...` (การกระจายลำดับใน Swift 5.4+ ไม่มีมาให้ในตัว ให้ใช้ reduce/spread ด้วยตนเอง): ```swift let total = nums.reduce(0, +) ```

คลอสเชอร์ค่าเริ่มต้น

ค่าเริ่มต้นใช้กับพารามิเตอร์คลอสเชอร์ได้เช่นกัน: ```swift func retry(count: Int = 3, action: () -> Bool) {} retry { fetchData() } // count defaults to 3 retry(count: 5) { fetchData() } ``` ไวยากรณ์คลอสเชอร์ต่อท้ายยังใช้ได้เมื่อมีค่าเริ่มต้น

การจัดทำเอกสารสำหรับค่าเริ่มต้น

ใส่คำอธิบายหรือตั้งชื่อค่าเริ่มต้นให้ชัดเจน เพื่อให้ผู้เรียกทราบว่าจะเกิดอะไรขึ้น: ```swift /// Sends a request. Timeout defaults to 30 seconds. func send(request: URLRequest, timeout: TimeInterval = 30.0) {} ``` เอกสารที่ดีช่วยป้องกันไม่ให้ผู้เรียกส่งค่าเริ่มต้นอย่างชัดเจนโดยไม่จำเป็น

รูปแบบใช้งานจริง: API แบบ print

`print` มาตรฐานของ Swift เองก็เป็นพารามิเตอร์แบบแปรผันจำนวนที่มีค่าเริ่มต้น: ```swift // Simplified signature: func print(_ items: Any..., separator: String = " ", terminator: String = "\n") print("a", "b", "c") // a b c print("x", "y", separator: "-") // x-y print("no newline", terminator: "") ```

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

ภายในฟังก์ชัน พารามิเตอร์แบบแปรผันจำนวน `Int...` มีชนิดใด

สรุปทบทวน

ประเด็นสำคัญ: • ค่าเริ่มต้นทำให้พารามิเตอร์เป็นตัวเลือก ณ จุดเรียกใช้ • ค่าพารามิเตอร์เริ่มต้นต้องตามหลังพารามิเตอร์ที่จำเป็น • พารามิเตอร์แบบแปรผันจำนวน (`Type...`) รับค่าศูนย์ค่าหรือมากกว่า และจะกลายเป็นอาร์เรย์ภายในฟังก์ชัน • แต่ละฟังก์ชันมีพารามิเตอร์แบบแปรผันจำนวนได้เพียงหนึ่งตัว • ใช้ทั้งสองแบบร่วมกันเพื่อสร้าง API ที่ยืดหยุ่นและกระชับ ถัดไป: พารามิเตอร์แบบ in-out และการคืนค่าหลายค่า

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

บทเรียน “พารามิเตอร์ค่าเริ่มต้นและพารามิเตอร์จำนวนไม่แน่นอน” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “พารามิเตอร์ค่าเริ่มต้นและพารามิเตอร์จำนวนไม่แน่นอน”

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

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

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

บทเรียน “พารามิเตอร์ค่าเริ่มต้นและพารามิเตอร์จำนวนไม่แน่นอน” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ป้ายกำกับอาร์กิวเมนต์และชื่อพารามิเตอร์
  2. พารามิเตอร์ค่าเริ่มต้นและพารามิเตอร์จำนวนไม่แน่นอน
  3. พารามิเตอร์ In-Out และการคืนค่าหลายค่า
  4. ฟังก์ชันในฐานะค่าแบบชั้นหนึ่ง
← กลับไปที่ Swift Academy