Trong Swift 4.1, nó có thể đạt được theo cách này:
prefix operator ++
postfix operator ++
extension Int{
static prefix func ++(x: inout Int)->Int{
x += 1
return x
}
static postfix func ++(x: inout Int)->Int{
x += 1
return x-1
}
}
//example:
var t = 5
var s = t++
print("\(t) \(s)")
Lưu ý rằng mặc dù thực tế là giải pháp này tương tự như các giải pháp trước đây trong bài đăng này, chúng không hoạt động nữa trong Swift 4.1 và ví dụ này có. Cũng lưu ý rằng bất kỳ ai ở trên đều đề cập rằng + = là sự thay thế cho ++, chỉ không hiểu đầy đủ về toán tử vì ++ kết hợp với gán thực sự là hai thao tác, do đó là một phím tắt. Trong ví dụ của tôi:var s = t++
thực hiện hai điều: gán giá trị của t cho s và sau đó tăng t. Nếu ++ xuất hiện trước, thì đó là hai thao tác được thực hiện theo thứ tự đảo ngược. Theo ý kiến của tôi, lý do của Apple về lý do loại bỏ toán tử này (đã được đề cập trong các câu trả lời trước), không chỉ là lý do sai mà hơn nữa tôi tin rằng đó là một lời nói dối và lý do thực sự là họ không thể khiến trình biên dịch của họ xử lý nó. Nó đã cho họ những rắc rối trong các phiên bản trước để họ từ bỏ. Logic của "quá phức tạp để hiểu toán tử, do đó bị loại bỏ" rõ ràng là một lời nói dối bởi vì Swift chứa các toán tử phức tạp hơn nhiều và ít hữu ích hơn mà không bị loại bỏ. Ngoài ra, phần lớn các ngôn ngữ lập trình có nó. JavaScript, C, C #, Java, C ++ và nhiều hơn nữa. Các lập trình viên vui vẻ sử dụng nó. Bất cứ ai cũng quá khó để hiểu toán tử này,
Chiến lược đằng sau Swift rất đơn giản: Apple tin rằng lập trình viên bị câm và do đó nên được đối xử phù hợp.
Sự thật là Swift, được ra mắt vào tháng 9 năm 2014 được cho là ở một nơi khác vào lúc này. Các ngôn ngữ khác lớn lên nhanh hơn nhiều.
Tôi có thể liệt kê nhiều lỗi chính trong ngôn ngữ, từ những lỗi nghiêm trọng: chẳng hạn như mảng được dán theo giá trị và không tham chiếu, đến lỗi khó chịu: các hàm tham số matrixdic không thể chấp nhận một mảng là toàn bộ ý tưởng đằng sau nó. Tôi không nghĩ rằng các nhân viên của Apple thậm chí còn được phép xem xét các ngôn ngữ khác như Java để họ thậm chí không biết rằng Apple chậm hơn nhiều năm. Apple có thể đã chấp nhận Java như một ngôn ngữ nhưng ngày nay, thách thức không phải là công nghệ, mà là bản ngã. Nếu họ đã mở IntelliJ để viết một số Java, họ chắc chắn sẽ đóng cửa sự hiểu biết kinh doanh của họ rằng tại thời điểm này, họ không thể và sẽ không bắt kịp bao giờ.