Tôi không biết cách nào để làm điều này tại thời gian biên dịch, bạn có thể được tốt hơn bằng cách sử dụng một đếm và chỉ cung cấp các giá trị trong đó liệt kê được trên 10
Nhưng, tất nhiên, điều này giới hạn bạn với các giá trị cụ thể mà có thể không phải là những gì bạn muốn.
Có những lựa chọn khác có sẵn cho bạn như:
- lỗi thời gian chạy, giống như ném một ngoại lệ.
- bỏ qua thời gian chạy, chẳng hạn như câu lệnh
if
thoát khỏi hàm cho các giá trị không nằm trong phạm vi của bạn.
Tại một pinch, bạn có thể xử lý mã nguồn với một tệp thực thi khác kiểm tra các giá trị được chuyển vào hàm của bạn, nhưng điều này sẽ chỉ hoạt động cho các cuộc gọi có thể được kéo xuống đối số không đổi. Và, nếu chúng là các đối số không đổi, bạn sẽ bắt chúng trong thời gian chạy trong giai đoạn thử nghiệm, lâu trước khi sản phẩm của bạn nằm trong phạm vi 100 feet của khách hàng hoặc người thử nghiệm beta. Trừ khi phạm vi kiểm tra của bạn không lên đến đầu nhưng sau đó đó là một vấn đề khác.
Nếu không, kiểm tra thời gian chạy là lựa chọn duy nhất của bạn.
điều gì về cách viết điều kiện kiểm tra bên trong các chức năng cụ thể? –
Tôi muốn kiểm tra thời gian biên dịch –
Bạn cần một ngôn ngữ có tương tác thời gian biên dịch, như Scheme/LISP. Điều đó nói rằng, nó sẽ chỉ tốt cho các hằng số tính toán thời gian biên dịch. – leppie