mutating keyword được sử dụng trong struct để chỉ định rằng một phương thức có thể thay đổi giá trị của các thuộc tính bên trong struct. Điều này là cần thiết vì mặc định, các phương thức của struct không được phép thay đổi giá trị của thuộc tính.
Dưới đây là một ví dụ đơn giản về cách sử dụng mutating method trong struct:
struct Point {
var x: Double
var y: Double
// Mutating method để di chuyển điểm theo một khoảng x và y
mutating func moveBy(x deltaX: Double, y deltaY: Double) {
x += deltaX
y += deltaY
}
}
// Tạo một đối tượng Point
var myPoint = Point(x: 10.0, y: 20.0)
// In ra giá trị ban đầu
print("Initial Point: (\(myPoint.x), \(myPoint.y))")
// Gọi phương thức mutating để di chuyển điểm
myPoint.moveBy(x: 5.0, y: 5.0)
// In ra giá trị sau khi di chuyển
print("Point after moving: (\(myPoint.x), \(myPoint.y))")
Trong ví dụ trên:
Pointlà một struct đại diện cho một điểm trên mặt phẳng với các thuộc tínhxvày.- Phương thức
moveByđược đánh dấu làmutating, cho phép nó thay đổi giá trị củaxvày. - Khi gọi phương thức
moveBy, giá trị củamyPointthay đổi dựa trên giá trị được truyền vào.
Lưu ý rằng mutating chỉ cần được sử dụng cho các phương thức trong struct. Với class, mặc định các phương thức là có thể thay đổi thuộc tính và không cần từ khóa mutating.
👋 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!