การแทรกค่าลงในสตริง

Swift:
การแทรกค่าลงในสตริง

วิธีการ:

Swift ทำให้การเชื่อมต่อสตริงแบบนี้เป็นเรื่องง่ายด้วย syntax \ (variableName).

let name = "Jane"
let age = 28
let greeting = "Hello, \(name), you are \(age) years old."
print(greeting)  // ผลลัพธ์: Hello, Jane, you are 28 years old.

คุณยังสามารถทำการดำเนินการภายในการแทรกค่า:

let apples = 3
let oranges = 5
let fruitSummary = "I have \(apples + oranges) pieces of fruit."
print(fruitSummary)  // ผลลัพธ์: I have 8 pieces of fruit.

ลงลึก

โอเค, เรามาดูประวัติศาสตร์กันหน่อย String interpolation ไม่ใช่ที่เฉพาะของ Swift เท่านั้น มันมีอยู่ในหลายภาษา (เช่น JavaScript, Python, ฯลฯ) แต่เวอร์ชันของ Swift นั้นมีความปลอดภัยด้านประเภทข้อมูล หมายความว่า compiler จะตรวจสอบประเภทข้อมูลให้คุณ ลดความผิดพลาดได้

ก่อน Swift 5, string interpolation นั้นอาจดูไม่ทรงพลังและยุ่งยาก แต่ Swift 5 ได้แนะนำ Extended String Interpolation ซึ่งทำให้คุณสามารถตกแต่งการแทรกค่าสตริงได้ เพิ่มความยืดหยุ่นได้อย่างน่าประทับใจ

ทางเลือกอื่นๆ สำหรับการแทรกค่าสตริงใน Swift ได้แก่ การใช้ + สำหรับการต่อสตริง และ method String(format:) สไตล์เก่า อย่างไรก็ตาม วิธีเหล่านี้อาจไม่สะดวกเท่า และยากต่อการอ่านสำหรับสตริงรูปแบบ

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

extension String.StringInterpolation {
    mutating func appendInterpolation(_ value: Date) {
        let formatter = DateFormatter()
        formatter.dateStyle = .medium
        appendLiteral(formatter.string(from: value))
    }
}

let today = Date()
let dateString = "Today's date is \(today)."
print(dateString) // ผลลัพธ์จะเป็นวันที่ของวันนี้ในรูปแบบการจัดรูปแบบสไตล์กลาง

ดูเพิ่มเติม

เพื่อรับรายละเอียดเพิ่มเติมเกี่ยวกับการแทรกค่าสตริง Swift’s documentation นั้นมีประโยชน์อย่างยิ่ง:

เพื่อขุดลึกลงไปยังการตกแต่งพิมพ์ที่กำหนดเอง: