Trang chủ

Hệ thống kiểu

Kiểu là gì, và trình biên dịch làm gì với nó

Hệ thống kiểu của Swift không phải một lớp nhãn dán thêm lên ngôn ngữ động. Nó quyết định một giá trị được lưu ra sao, gán nó là sao chép hay dùng chung, một lời gọi phương thức rốt cuộc đi về đâu, và bao nhiêu phần trong số đó đã xong trước khi chương trình kịp chạy.

Ba chương ở đây đi theo thứ tự ấy, từ dưới lên. Giá trị và tham chiếu nói về việc một kiểu gì — đưa nó cho một hàm là đưa bản sao hay đưa chung một thứ. Protocol nói về việc một kiểu hứa điều gì, và trình biên dịch dựng ra thứ gì để gọi được qua lời hứa đó. Generic nói về chuyện viết một đoạn code đúng cho cả một họ kiểu, và mỗi cách làm điều đó tốn gì lúc chạy.

Lần đầu nên đọc đúng thứ tự; chương sau tựa vào chương trước. Một ràng buộc generic chỉ đọc được khi đã biết một conformance thật sự biên dịch ra cái gì, và điều đó chỉ có nghĩa khi đã biết thứ đang được truyền đi là bản sao hay là tham chiếu.