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

การแทรกข้อความในสตริงแบบกำหนดเอง

ขยายการแทรกข้อความด้วยส่วนประกอบของคุณเอง

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

การแทรกค่าในสตริงแบบกำหนดเอง

Swift ช่วยให้คุณขยายวิธีทำงานของการแทรกค่าได้ด้วยการเพิ่มเมธอดให้กับ String.StringInterpolation ซึ่งช่วยกำหนดการทำงานสำหรับชนิดอาร์กิวเมนต์หรือป้ายกำกับเฉพาะ

extension String.StringInterpolation {
    mutating func appendInterpolation(shout value: String) {
        appendLiteral(value.uppercased() + "!")
    }
}
print("Message: \(shout: "hello")")

เมธอด appendInterpolation

การแทรกค่าแบบกำหนดเองแต่ละรายการคือ mutating func appendInterpolation(...) พารามิเตอร์ของเมธอดจะกำหนดสิ่งที่คุณเขียนไว้ระหว่างวงเล็บในสตริง

extension String.StringInterpolation {
    mutating func appendInterpolation(repeat text: String, times: Int) {
        appendLiteral(String(repeating: text, count: times))
    }
}
print("\(repeat: "ab", times: 3)")

appendLiteral และ appendInterpolation

ภายในเมธอดแบบกำหนดเอง คุณสร้างผลลัพธ์โดยเรียก appendLiteral สำหรับข้อความธรรมดา และนำการแทรกค่าที่มีอยู่แล้วกลับมาใช้กับค่าต่าง ๆ

extension String.StringInterpolation {
    mutating func appendInterpolation(twice value: Int) {
        appendLiteral("\(value)\(value)")
    }
}
print("\(twice: 7)")

อาร์กิวเมนต์การแทรกค่าที่มีป้ายกำกับ

ป้ายกำกับของพารามิเตอร์ตัวแรกจะกลายเป็นคีย์เวิร์ดที่คุณใช้ เช่น \(shout: ...) ทำให้เจตนาชัดเจนตรงจุดเรียกใช้

extension String.StringInterpolation {
    mutating func appendInterpolation(currency amount: Double) {
        appendLiteral(String(format: "$%.2f", amount))
    }
}
print("Price: \(currency: 9.5)")

พารามิเตอร์หลายตัว

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

extension String.StringInterpolation {
    mutating func appendInterpolation(_ value: Double, places: Int) {
        appendLiteral(String(format: "%.\(places)f", value))
    }
}
print("\(3.14159, places: 2)")

การจัดรูปแบบค่าตามโดเมน

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

extension String.StringInterpolation {
    mutating func appendInterpolation(padded value: Int, width: Int) {
        appendLiteral(String(format: "%0\(width)d", value))
    }
}
print("ID: \(padded: 42, width: 5)")

ผลลัพธ์แบบมีเงื่อนไข

การแทรกค่าแบบกำหนดเองสามารถมีตรรกะได้ โดยสร้างข้อความที่แตกต่างกันตามอินพุต

extension String.StringInterpolation {
    mutating func appendInterpolation(yesNo flag: Bool) {
        appendLiteral(flag ? "Yes" : "No")
    }
}
print("Active: \(yesNo: true)")

การนำการแทรกค่าที่มีอยู่แล้วกลับมาใช้

ภายในเมธอดของคุณสามารถเรียก appendInterpolation สำหรับชนิดข้อมูลที่มีมาให้ในระบบ เพื่อสร้างต่อยอดจากการทำงานมาตรฐาน

extension String.StringInterpolation {
    mutating func appendInterpolation(bracketed value: Int) {
        appendLiteral("[")
        appendInterpolation(value)
        appendLiteral("]")
    }
}
print("\(bracketed: 9)")

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

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

extension String.StringInterpolation {
    mutating func appendInterpolation(money value: Double, symbol: String = "$") {
        appendLiteral(symbol + String(format: "%.2f", value))
    }
}
let sym = "EUR "
print("\(money: 5.0)")
print("\(money: 5.0, symbol: sym))")

ควรใช้การแทรกค่าแบบกำหนดเองเมื่อใด

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

extension String.StringInterpolation {
    mutating func appendInterpolation(stars n: Int) {
        appendLiteral(String(repeating: "*", count: n))
    }
}
print("Rating: \(stars: 4)")

สรุปการแทรกค่าแบบกำหนดเอง

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

extension String.StringInterpolation {
    mutating func appendInterpolation(percent value: Double) {
        appendLiteral(String(format: "%.0f%%", value * 100))
    }
}
print("Done: \(percent: 0.75)")

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

ทบทวนกลไกเบื้องหลังการแทรกค่าแบบกำหนดเอง

ทบทวน: การแทรกค่าในสตริงแบบกำหนดเอง

คุณได้เรียนรู้ว่าการขยาย String.StringInterpolation ด้วยเมธอด appendInterpolation ช่วยให้คุณกำหนดไวยากรณ์การแทรกค่าใหม่ได้ โดยใช้ appendLiteral และการแทรกค่าซ้อนกันเพื่อสร้างผลลัพธ์ พร้อมรองรับป้ายกำกับ พารามิเตอร์หลายตัว และค่าเริ่มต้นสำหรับการจัดรูปแบบที่สะอาดและนำกลับมาใช้ใหม่ได้

extension String.StringInterpolation {
    mutating func appendInterpolation(upper value: String) {
        appendLiteral(value.uppercased())
    }
}
print("Hello \(upper: "swift")")

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

บทเรียน “การแทรกข้อความในสตริงแบบกำหนดเอง” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การแทรกข้อความในสตริงแบบกำหนดเอง”

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

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

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

บทเรียน “การแทรกข้อความในสตริงแบบกำหนดเอง” ใช้เวลานานแค่ไหน

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

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

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

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

  1. พื้นฐานการแทรกข้อความในสตริง
  2. การจัดรูปแบบตัวเลขในสตริง
  3. ค่าคงที่สตริงหลายบรรทัด
  4. การแทรกข้อความในสตริงแบบกำหนดเอง
← กลับไปที่ Swift Academy