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

ค่าเริ่มต้นในพารามิเตอร์ฟังก์ชัน

กำหนดค่าเริ่มต้นให้พารามิเตอร์เพื่อให้จุดเรียกใช้งานง่ายขึ้น

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

พารามิเตอร์ค่าเริ่มต้นคืออะไร

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

func greet(name: String = "Guest") {
    print("Hello, \(name)")
}
greet()
greet(name: "Ada")

การประกาศค่าเริ่มต้น

กำหนดค่าเริ่มต้นหลังชนิดข้อมูลของพารามิเตอร์โดยใช้ = ค่าเริ่มต้นจะถูกใช้เฉพาะเมื่อผู้เรียกใช้ไม่ส่งอาร์กิวเมนต์นั้นมา

func power(base: Int, exponent: Int = 2) -> Int {
    var result = 1
    for _ in 0..<exponent { result *= base }
    return result
}
print(power(base: 5))
print(power(base: 5, exponent: 3))

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

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

func makeBox(width: Int = 1, height: Int = 1) -> Int {
    return width * height
}
print(makeBox())
print(makeBox(width: 4))

การผสมพารามิเตอร์ที่จำเป็นกับค่าเริ่มต้น

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

func send(message: String, urgent: Bool = false) {
    print("\(urgent ? "URGENT: " : "")\(message)")
}
send(message: "Hi")
send(message: "Fire!", urgent: true)

ค่าเริ่มต้นช่วยลดฟังก์ชันหลายรูปแบบ

ก่อนมีพารามิเตอร์ค่าเริ่มต้น คุณอาจต้องเขียนฟังก์ชันที่มีรูปแบบต่างกันหลายฟังก์ชัน ฟังก์ชันเดียวที่มีค่าเริ่มต้นสามารถแทนที่ฟังก์ชันเหล่านั้นได้ทั้งหมด

func connect(host: String, port: Int = 80) {
    print("\(host):\(port)")
}
connect(host: "example.com")
connect(host: "example.com", port: 8080)

แทนที่ค่าเริ่มต้นบางส่วนได้

คุณสามารถแทนที่ค่าเริ่มต้นเพียงตัวเดียวและคงค่าอื่นไว้ได้ ตราบใดที่ใช้ป้ายกำกับอาร์กิวเมนต์เพื่อระบุให้ชัดเจน

func style(size: Int = 12, bold: Bool = false, italic: Bool = false) {
    print("\(size) bold:\(bold) italic:\(italic)")
}
style(bold: true)

ค่าเริ่มต้นสามารถเป็นนิพจน์ได้

ค่าเริ่มต้นสามารถเป็นนิพจน์ใดก็ได้ที่มีชนิดถูกต้อง และจะถูกประเมินเมื่อไม่มีการส่งอาร์กิวเมนต์มา

func now(stamp: Int = 1000 + 1) {
    print(stamp)
}
now()
now(stamp: 5)

ค่าเริ่มต้นของค่าออปชัน

รูปแบบที่ใช้บ่อยคือพารามิเตอร์ออปชันที่มีค่าเริ่มต้นเป็น nil ทำให้ผู้เรียกใช้สามารถละพารามิเตอร์นั้นไปได้ทั้งหมด

func log(_ text: String, tag: String? = nil) {
    print("[\(tag ?? "general")] \(text)")
}
log("Started")
log("Saved", tag: "db")

การใช้ร่วมกับการรวมค่าเมื่อไม่มีข้อมูล

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

func price(amount: Int? = nil) -> Int {
    return amount ?? 10
}
print(price())
print(price(amount: 25))

ค่าเริ่มต้นในตัวเริ่มต้น

ฟีเจอร์เดียวกันนี้ใช้กับตัวเริ่มต้นของโครงสร้างได้ ทำให้คุณสร้างออบเจ็กต์ที่มีค่าเริ่มต้นเหมาะสมได้

struct Settings {
    var volume: Int
    init(volume: Int = 50) {
        self.volume = volume
    }
}
print(Settings().volume)
print(Settings(volume: 80).volume)

ประโยชน์ด้านการอ่านเข้าใจ

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

func repeatText(_ text: String, times: Int = 1) {
    for _ in 0..<times { print(text) }
}
repeatText("Hi")
repeatText("Yo", times: 2)

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

ทดลองใช้พารามิเตอร์ค่าเริ่มต้น

สรุป: ค่าเริ่มต้นในพารามิเตอร์ฟังก์ชัน

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

func tax(amount: Int, rate: Int = 10) -> Int {
    return amount + amount * rate / 100
}
print(tax(amount: 100))

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

บทเรียน “ค่าเริ่มต้นในพารามิเตอร์ฟังก์ชัน” ฟรีหรือไม่

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

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

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

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

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

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

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

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

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

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

  1. ตัวดำเนินการรวมค่าเมื่อเป็น nil
  2. การเชื่อมโยงค่าเริ่มต้น
  3. ค่าเริ่มต้นในพารามิเตอร์ฟังก์ชัน
  4. ซับสคริปต์ค่าเริ่มต้นของพจนานุกรม
← กลับไปที่ Swift Academy