การแทรกข้อความในสตริงแบบกำหนดเอง
ขยายการแทรกข้อความด้วยส่วนประกอบของคุณเอง
การแทรกข้อความในสตริงแบบกำหนดเอง เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐานการแทรกข้อความในสตริง
- การจัดรูปแบบตัวเลขในสตริง
- ค่าคงที่สตริงหลายบรรทัด
- การแทรกข้อความในสตริงแบบกำหนดเอง