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:
Point
là một struct đại diện cho một điểm trên mặt phẳng với các thuộc tínhx
vày
.- Phương thức
moveBy
được đánh dấu làmutating
, cho phép nó thay đổi giá trị củax
vày
. - Khi gọi phương thức
moveBy
, giá trị củamyPoint
thay đổ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,
Bài viết này sử dụng AI ChatGPT để viết sau đó được lựa chọn, biên tập lại nội dung, chỉ một phần nhỏ các bài là tôi tự viết. Nội dung thể hiện ý chí cá nhân về các vấn đề, giải pháp. Tôi lưu tại website này để học, tra cứu và chia sẻ.
Tôi là Minh, sống tại Hà Nội, kỹ sư phần mềm với hơn 20 năm kinh nghiệm. Các ngôn ngữ yêu thích của tôi là Swift, Objective-C, Java, Kotlin, .NET, HTML, JavaScript, CSS, Bootstrap, jQuery, AngularJS, Angular…
Các bạn có thể tải app của tôi trên App Store hoặc Google Play:
QuestionBank-Ôn thi vào 10: phiên bản iOS, phiên bản Android
TypingTest by QuestionBank: phiên bản iOS, phiên bản Android
Xin cảm ơn,
Minh