Swift:
การต่อสตริง

วิธีการ:

let firstName = "Taylor"
let lastName = "Swift"
let fullName = firstName + " " + lastName  // ใช้โอเปอเรเตอร์ +
print(fullName)  // ผลลัพธ์: "Taylor Swift"

let age = 31
let greeting = "Hello, \(firstName)! You're \(age) years old."  // ใช้ string interpolation
print(greeting)  // ผลลัพธ์: "Hello, Taylor! You're 31 years old."

var message = "This"
message += " is" // ใช้โอเปอเรเตอร์ += เพื่อ append ไปยังสตริง
message += " Sparta!"
print(message)  // ผลลัพธ์: "This is Sparta!"

ลึกลงไป

ในอดีต คนในภาษาโปรแกรมมิ่งเช่น C ต้องดำเนินการย้ายสตริงด้วยตนเองด้วยการใช้ฟังก์ชัน รับมือกับอาร์เรย์และสตริงที่จบด้วย null Swift ทำให้มันง่ายขึ้น โอเปอเรเตอร์ ‘+’ สำหรับสตริงนั้นมาจากภาษาเช่น Java และ C++ นำเสนอวิธีที่คุ้นเคยในการต่อสตริงเข้าด้วยกัน

มีตัวเลือกที่เกินกว่า ‘+’. String interpolation ใน Swift ไม่เพียงแต่เกี่ยวกับการเป็นแฟนซีประการแรก – มันเป็นวิธีที่ปลอดภัยตามประเภทในการฝังค่าโดยตรงภายในสตริงของคุณ ไม่มีความจำเป็นต้องแปลงประเภทหรือกังวลว่าคุณจะจับคู่สิ่งใดผิด

การต่อสตริงระดับสูงเกี่ยวข้องกับมากกว่าเพียงการโยนคำไปมา เมื่อประสิทธิภาพเป็นสิ่งสำคัญ การใช้ ‘+=’ อย่างไม่ระมัดระวังอาจทำให้คุณช้าลง ทำไม? เพราะถ้าคุณกำลังเพิ่มข้อความลงในสตริงในลูป Swift อาจสร้างสตริงใหม่ทุกครั้ง ซึ่งไม่ได้เป็นไปอย่างต่อเนื่องนัก แทนที่นั้น ควรพิจารณาใช้ ‘join()’ หรือ ‘append()’ ของ ‘String’ เพื่อประสิทธิภาพ โดยเฉพาะอย่างยิ่งกับข้อมูลขนาดใหญ่หรือลูปที่ซับซ้อน

// การต่อสตริงอย่างมีประสิทธิภาพด้วย `join()`
let words = ["Once", "upon", "a", "time"]
let story = words.joined(separator: " ")  // มีประสิทธิภาพสำหรับการรวมองค์ประกอบของอาร์เรย์
print(story)  // ผลลัพธ์: "Once upon a time"

// ใช้ 'append(contentsOf:)' สำหรับการ append ของ substrings
var quote = "I think, "
quote.append(contentsOf: "therefore I am")
print(quote)  // ผลลัพธ์: "I think, therefore I am"

ดูเพิ่มเติม