D - Lập trình hợp đồng
Lập trình hợp đồng trong lập trình D tập trung vào việc cung cấp một phương tiện xử lý lỗi đơn giản và dễ hiểu. Lập trình hợp đồng trong D được thực hiện bởi ba loại khối mã:
- khối cơ thể
- trong khối
- ra khối
Khối cơ thể trong D
Khối nội dung chứa mã thực thi chức năng thực tế. Các khối vào và ra là tùy chọn trong khi khối nội là bắt buộc. Một cú pháp đơn giản được hiển thị bên dưới.
return_type function_name(function_params)
in {
// in block
}
out (result) {
// in block
}
body {
// actual function block
}
Trong khối cho các điều kiện trước trong D
Trong khối dành cho các điều kiện trước đơn giản để xác minh xem các thông số đầu vào có được chấp nhận hay không và nằm trong phạm vi mà mã có thể xử lý được. Lợi ích của một trong khối là tất cả các điều kiện đầu vào có thể được giữ cùng nhau và tách biệt khỏi nội dung thực tế của hàm. Điều kiện tiên quyết đơn giản để xác thực mật khẩu cho độ dài tối thiểu của nó được hiển thị bên dưới.
import std.stdio;
import std.string;
bool isValid(string password)
in {
assert(password.length>=5);
}
body {
// other conditions
return true;
}
void main() {
writeln(isValid("password"));
}
Khi đoạn mã trên được biên dịch và thực thi, nó sẽ đọc tệp được tạo trong phần trước và tạo ra kết quả sau:
true
Các khối cho các điều kiện đăng trong D
Khối out xử lý các giá trị trả về từ hàm. Nó xác nhận giá trị trả về nằm trong phạm vi mong đợi. Dưới đây là một ví dụ đơn giản chứa cả in và out để chuyển đổi tháng, năm sang dạng tuổi thập phân kết hợp.
import std.stdio;
import std.string;
double getAge(double months,double years)
in {
assert(months >= 0);
assert(months <= 12);
}
out (result) {
assert(result>=years);
}
body {
return years + months/12;
}
void main () {
writeln(getAge(10,12));
}
Khi đoạn mã trên được biên dịch và thực thi, nó sẽ đọc tệp được tạo trong phần trước và tạo ra kết quả sau:
12.8333