2013-02-11 17 views
7

Ngôn ngữ Rust có hỗ trợ các giá trị không đổi trong mã chung tương tự như cách C++ không? Dường như ngôn ngữ overview không quảng cáo. Các kiểu tham số với các hằng số trong C++ cho phép tạo các đối tượng với các bộ đệm có kích thước khác nhau tùy thuộc vào nhu cầu của khách hàng (các kiểu như stlsoft :: auto_buffer).
Nếu không, thì các phương pháp hay nhất để thực hiện các thiết kế tương tự trong Rust là gì?Giá trị không đổi trong các tướng Rust

Trả lời

8

Không, điều này không được hỗ trợ theo cách an toàn. Chúng ta sẽ cần các chữ số kiểu chữ, như GHC gần đây đã được thêm vào, cho điều đó.

Tuy nhiên, bạn có thể sử dụng các macro Rust. Với macro, bạn có thể tạo "mẫu" được tham số hóa trên các biểu thức tùy ý, bao gồm các hằng số, cho phép bạn thực hiện những gì bạn muốn ở đây. Lưu ý rằng bạn có thể tìm thấy các lỗi và giới hạn trong hệ thống macro nếu bạn thử điều này tại thời điểm này.

+0

Macro có vẻ giống người ngoài hành tinh so với ngôn ngữ chính. Có một phòng còn lại cho các biểu thức thời gian biên dịch là các thông số bình thường của hàm trong tương lai Rust không? – tivadj

+0

Tôi muốn parametrize một loại trên một chức năng. Làm như vậy với các macro sẽ yêu cầu chức năng respecification của hàm tại hầu hết các trang gọi. Ngoài ra, tôi có thể "lưu trữ" hàm này dưới dạng "giá trị" ở nhiều vị trí khác nhau trong cấu trúc để có thể truy cập được. Vì vậy, parametrization trên các giá trị sẽ được thực sự tốt đẹp! – dhardy

+0

Các giải pháp cho vấn đề của tôi không phải là parametrize qua một chức năng nhưng để làm như vậy trên một loại (có thể là một cấu trúc rỗng) thực hiện một đặc điểm nhất định. Về lý thuyết ít nhất; Tôi hoặc trình biên dịch có vấn đề với sự phức tạp của nó. – dhardy

Các vấn đề liên quan