Cuốn sách nói về điều gì, và viết cho ai
Phần lớn tài liệu Swift dạy bạn viết sao cho biên dịch được. Cuốn sách này nói về chuyện xảy ra sau khi biên dịch xong — chỗ nào giá trị bị sao chép, lời gọi nào phải đi qua bảng ảo, trình biên dịch đã phải từ bỏ điều gì khi bạn dùng protocol, và vì sao bộ kiểm tra đồng thời lại từ chối một đoạn code trông rất hợp lý.
Swift đặc biệt ở chỗ nó giấu đi rất nhiều thứ. Một phép gán struct có thể là sao chép một trăm
byte, cũng có thể chỉ là tăng một bộ đếm tham chiếu. Một lời gọi protocol có thể được nội tuyến hoàn
toàn, cũng có thể phải đi qua bảng nhân chứng và một hộp trên heap. Nhìn mã nguồn không thấy được gì
cả. Bạn viết Swift rất lâu mà không cần biết — cho tới ngày cầm bản đo hiệu năng trên tay thấy sai
lệch, hoặc một cuộc tranh chấp dữ liệu chỉ xuất hiện trên máy khách hàng, và lớp trừu tượng thôi
không còn miễn phí nữa.
Bạn viết Swift hằng ngày. Bạn nắm optional, closure, if let. Thứ bạn cần bây giờ là tầng bên dưới:
không phải thêm cú pháp, mà là mô hình giải thích vì sao cú pháp lại hành xử như thế.
Các chương xây trên nhau chứ không đứng riêng lẻ.
struct là lựa chọn mặc định.async/await, actor và Sendable — một hệ thống kiểu dành cho thời gian.Mẹo
Mọi đoạn code ở đây đều nên được dán vào playground hoặc REPL swift rồi nghịch thử. Đọc về
copy-on-write mười phút không dạy bạn bằng việc thấy isKnownUniquelyReferenced in ra false
đúng lúc bạn đinh ninh nó phải là true.
Toàn bộ nội dung nhắm tới Swift 6 cùng chế độ kiểm tra đồng thời nghiêm ngặt. Chỗ nào là tính năng
mới — typed throws, parameter pack, tham số sending — sách sẽ nói rõ, vì một lượng lớn lời khuyên
về Swift trên mạng có trước chúng và vẫn đang lặng lẽ chỉ bạn cách lách những vấn đề mà ngôn ngữ đã
giải quyết xong.