Sequence, cách lưu trữ, và vì sao chuỗi không phải mảng
Gần như chương trình nào cũng dành phần lớn thời gian duyệt qua một dãy phần tử và làm gì đó với
từng cái. Swift trao việc ấy cho cả một hệ thống phân cấp protocol chứ không phải một kiểu
Collection duy nhất, và chỗ bạn gắn code của mình vào hệ thống ấy quyết định nó được phép hứa
những gì và tốn bao nhiêu.
Văn bản là chỗ khác biệt đó cắn đau nhất. Một chuỗi trông như tập hợp các ký tự và hành xử đúng như vậy, nhưng ký tự nó trả về là một grapheme cluster không có độ dài cố định — nên những thao tác rẻ tiền quen thuộc từ mảng đơn giản là không có ở đó. Thứ thay thế chúng, và cách chọn khung nhìn khiến việc của bạn thành rẻ, là nội dung chương thứ hai.