Những điều mới có trong Swift 4.2
Swift 4.1 import các API C để tạo các số ngẫu nhiên, như trong đoạn mã dưới đây: arc4random_uniform(: ) : trả về 1 số ngẫu nhiên từ 0 - 9. Nhưng yêu cầu chúng ta import Foundation, và rất tiếc là không hoạt động trên Linux Swift 4.2 giải quyết vấn đề này bằng cách thêm một random API vào thư ...
Swift 4.1 import các API C để tạo các số ngẫu nhiên, như trong đoạn mã dưới đây:
arc4random_uniform(: ) : trả về 1 số ngẫu nhiên từ 0 - 9. Nhưng yêu cầu chúng ta import Foundation, và rất tiếc là không hoạt động trên Linux Swift 4.2 giải quyết vấn đề này bằng cách thêm một random API vào thư viện chuẩn. Đoạn code trên được thực hiện như sau:
- Chúng ta sử dung random(in:) để tạo ngẫu nhiên một số trong khoảng.
- randomElement() trả về nil nếu khoảng giá trị là rỗng, nên chúng ta cần sử dụng if let để unwrap
- Sử dụng random(in:) với một số loại dữ liệu cụ thể.
Swift 4.1 sử dụng dấu ngoặc vuông để thực hiện gọi với custom subcript: Subcript trong trường hợp này trả về nôi dung của một phần tử private trong class Nguoi Còn với Swift 4.2 sử dụng "Dynamic Member LookUp" cung cấp việc sử dụng dấu chấm thay vì ngoặc vuông
- Chúng ta đánh dấu class Person kiểu @DynamicMemberLookup để cho phép sử dụng dấu chấm với custom subcript
- Tiếp theo chúng ta cần implement subscript(dynamicMember:)
- Chúng ta có thể gọi ra bằng dấu chấm thay vì dấu ngoặc vuông như trước.
Swift 4.1 không cung cấp, nên bạn phải thực hiện bằng cách sau rất phức tạp: Ở đây chúng ta phải đùng 1 mảng sessions để thực hiện lăp các phần tử. Nhưng với Swift 4.2 chúng ta sẽ giải quyết nó một cách đơn giản hơn. Cách mà swift 4.2 đã thực hiện như sau:
- Enum cần implement CaseIterable để sử dụng array trong enum này.
- Chúng ta thực hiện chạy vòng lặp thông qua allCases , và in các phần tử ra.
Chúng ta thường muốn xóa các phần tử cụ thể trong Collection. Với Swift 4.1 chúng ta thực hiện như sau: Lọc từ greetings ra một mảng ngắn hơn. Điều này không ảnh hưởng đến mảng ban đầu, nên bạn có thẻ sử dụng greetings Với Swift 4.2 sẽ ngắn gọn hơn rất nhiều;
Swift 4.2 xác định Compiler Directives Cách mà nó đã hoạt động :
- Sử dung #Warning như một lời nhắc rằng hàm đươc dùng để thêm phần tử vào Number
- Sử dụng #error để yêu cầu người dùng nhập username và password trước khi đăng nhập
Swift 4.2 sử dụng Key Path để truy vấn MemoryLayout của bộ nhớ lưu trữ Các bước thực hiện:
- Bạn khai báo một tọa độ ngang và dọc của một điểm
- Bạn khai báo các thuộc tính của đường tròn
- Sử dụng key path để lấy offsets của circle ' store memory
- Sẽ trả về nil nếu chúng không được lưu trong bộ nhớ
Nguồn : https://www.raywenderlich.com/194066/whats-new-in-swift-4-2