Trong Swift, extension là một cách để thêm các thành phần mới cho một kiểu dữ liệu, class, struct, optional đã tồn tại mà không cần sửa đổi mã nguồn nguyên thủy của kiểu đó. Cú pháp của extension như sau:
extension ExistingType {
// Thêm các phương thức và thuộc tính mới ở đây
}
Dưới đây là một số cách bạn có thể sử dụng extension trong Swift:
Mục Lục
1. Thêm Phương Thức cho Kiểu Dữ Liệu Đã Tồn Tại:
extension Int {
func square() -> Int {
return self * self
}
}
let number = 5
let squaredNumber = number.square() // squaredNumber là 25
2. Thêm Thuộc Tính Tính Cho Kiểu Dữ Liệu Đã Tồn Tại:
extension Double {
var squared: Double {
return self * self
}
}
let floatingPointNumber = 3.0
let squaredResult = floatingPointNumber.squared // squaredResult là 9.0
3. Thực Hiện Protocol:
Bạn có thể thêm conformance vào một protocol cho một kiểu dữ liệu đã tồn tại bằng extension:
protocol Greetable {
func greet() -> String
}
extension String: Greetable {
func greet() -> String {
return "Hello, \(self)!"
}
}
let name = "John"
let greeting = name.greet() // greeting là "Hello, John!"
4. Initializers Mở Rộng:
Bạn có thể thêm các initializer mới cho một kiểu dữ liệu:
struct Point {
var x: Double
var y: Double
}
extension Point {
init(x: Int, y: Int) {
self.x = Double(x)
self.y = Double(y)
}
}
let integerPoint = Point(x: 3, y: 5)
5. Subscripts:
Thêm subscripts mới cho kiểu dữ liệu:
extension Array {
subscript(safe index: Int) -> Element? {
return indices ~= index ? self[index] : nil
}
}
let array = [1, 2, 3, 4]
let element = array[safe: 2] // element là Optional(3)
Lưu Ý Quan Trọng:
- Extension không thể thêm lưu trữ (stored) thuộc tính mới hoặc thay đổi giá trị của thuộc tính tồn tại.
- Bạn có thể sử dụng extension để tách mã nguồn thành các phần nhỏ hơn và dễ quản lý hơn.
- Extension thường được sử dụng để làm cho mã nguồn ngắn gọn, dễ đọc và dễ bảo trì hơn.
Tuy nhiên, hãy sử dụng extension một cách cẩn thận và tránh lạm dụng chúng để giữ cho mã nguồn của bạn dễ đọc và bảo trì.
Xin chào,
99,99% nội dung trên website này là nhờ hỏi ChatGPT, rồi mình biên tập lại để dễ hiểu và dùng lâu dài. Một vài bài tự viết, còn lại là “làm việc nhóm với AI”
Mình lưu tại đây để tra cứu, học tập và chia sẻ với bạn bè. Nếu bạn tìm được gì hữu ích, cứ đọc thoải mái – miễn phí, không quảng cáo.
Mình cũng có vài app cá nhân:
QuestionBank – Ôn thi vào 10 (iOS, Android)
TypingTest by QuestionBank (iOS, Android)
Cảm ơn bạn đã ghé qua!