Khác biệt giữa bản sửa đổi của “D (ngôn ngữ lập trình)”

Nội dung được xóa Nội dung được thêm vào
n Đã lùi lại sửa đổi của NguoiDungKhongDinhDanh (Thảo luận) quay về phiên bản cuối của 2402:800:6105:B661:4F3:82C2:6CF3:649F
Thẻ: Lùi tất cả
Sửa thẻ cũ/chính tả
Dòng 58:
 
==== Lập trình hàm ====
D hỗ trợ các tính năng lập trình làm như chức năng hàm ẩn danh, hàm đóng, đối tượng đệ quy và sử dụng các hàm bậc cao hơn. Có hai cú pháp cho các hàm ẩn danh, bao gồm một biểu mẫu nhiều câu lệnh và ký hiệu một biểu thức "viết tắt":<ref name="short"/><sourcesyntaxhighlight lang="D">
int function(int) g;
g = (x) { return x * x; }; // longhand
g = (x) => x * x; // shorthand
</sourcesyntaxhighlight>Có hai kiểu dựng sẵn cho hàm chức năng, function, chỉ đơn giản là một con trỏ tới một hàm được phân bổ theo chồng và delegate, cũng bao gồm một con trỏ tới môi trường xung quanh. Việc chuyển kiểu có thể được sử dụng với một hàm ẩn danh, trong trường hợp đó trình biên dịch tạo ra một delegate trừ khi nó có thể chứng minh rằng một con trỏ môi trường là không cần thiết. Tương tự như vậy, để thực hiện một việc đóng hàm, trình biên dịch đặt các biến cục bộ chỉ trên vùng heap nếu cần thiết (ví dụ, nếu một hàm đóng được trả về bởi một hàm khác và thoát khỏi phạm vi của hàm đó). Khi sử dụng suy luận kiểu, trình biên dịch cũng sẽ thêm các thuộc tính như thuần túy và không thuần túy vào kiểu của một hàm, nếu nó có thể chứng minh rằng chúng cần được áp dụng.
 
==== Lập trình đồng bộ ====