Dường như tất cả các ngôn ngữ lập trình mới hoặc ít nhất là những ngôn ngữ đã trở thành loại suy luận sử dụng phổ biến. Ngay cả Javascript cũng có kiểu và suy luận kiểu mặc dù các cách triển khai khác nhau (Acscript, typecript, v.v.). Nó có vẻ tuyệt vời đối với tôi nhưng tôi tự hỏi liệu có bất kỳ sự đánh đổi nào hay tại sao chúng ta hãy nói Java hoặc các ngôn ngữ tốt cũ không có kiểu suy luận
- Khi khai báo một biến trong Go mà không chỉ định loại của nó (sử dụng var không có kiểu hoặc cú pháp: =), kiểu của biến được suy ra từ giá trị ở phía bên tay phải.
- D cho phép viết các đoạn mã lớn mà không cần chỉ định các loại, như các ngôn ngữ động. Mặt khác, suy luận tĩnh suy ra các loại và các thuộc tính mã khác, mang lại điều tốt nhất cho cả thế giới tĩnh và thế giới động.
- Công cụ suy luận kiểu trong Rust khá thông minh. Nó thực hiện nhiều hơn là nhìn vào loại giá trị r trong quá trình khởi tạo. Nó cũng xem cách biến được sử dụng sau đó để suy ra kiểu của nó.
- Swift sử dụng suy luận kiểu để tìm ra loại thích hợp. Kiểu suy luận cho phép trình biên dịch tự động suy ra loại biểu thức cụ thể khi nó biên dịch mã của bạn, chỉ bằng cách kiểm tra các giá trị bạn cung cấp.
var
và C ++ auto
) và loại suy luận (hai chiều, như Haskell let
). Trong trường hợp trước, loại tên có thể được suy ra từ trình khởi tạo của nó, chỉ sử dụng tên của nó phải tuân theo loại tên đó. Trong trường hợp sau, loại tên có thể được suy ra từ cách sử dụng của nó, cũng rất hữu ích ở chỗ bạn có thể viết đơn giản []
cho một chuỗi trống, bất kể loại phần tử hoặc newEmptyMVar
tham chiếu có thể thay đổi null mới, bất kể tham chiếu nào kiểu.
var
vì đôi khi có thể làm tổn thương khả năng đọc.