Để làm cho câu hỏi này có thể trả lời được, hãy giả sử rằng chi phí mơ hồ trong suy nghĩ của một lập trình viên đắt hơn nhiều sau đó thêm một vài lần nhấn phím.
Vì vậy, tại sao tôi lại cho phép các đồng đội của mình thoát khỏi mà không chú thích các tham số chức năng của họ? Lấy đoạn mã sau làm ví dụ về những gì có thể là một đoạn mã phức tạp hơn nhiều:
let foo x y = x + y
Bây giờ, một kiểm tra nhanh về tooltip sẽ cho bạn thấy rằng F # đã xác định bạn có nghĩa là x và y là ints. Nếu đó là những gì bạn dự định, thì tất cả đều tốt. Nhưng tôi không biết nếu đó là những gì bạn dự định. Điều gì nếu bạn đã tạo mã này để nối hai chuỗi với nhau? Hoặc nếu tôi nghĩ bạn có thể muốn tăng gấp đôi thì sao? Hoặc nếu tôi không muốn phải di chuột qua từng tham số chức năng duy nhất để xác định loại của nó thì sao?
Bây giờ lấy điều này làm ví dụ:
let foo x y = "result: " + x + y
Bây giờ F # giả định rằng bạn có thể có ý định nối chuỗi, vì vậy x và y được định nghĩa là chuỗi. Tuy nhiên, vì người nghèo đang duy trì mã của bạn, tôi có thể xem xét điều này và tự hỏi liệu có lẽ bạn đã có ý định thêm x và y (ints) với nhau và sau đó nối kết quả vào chuỗi cho mục đích UI.
Chắc chắn đối với các ví dụ đơn giản như vậy, người ta có thể để nó đi, nhưng tại sao không thực thi chính sách chú thích loại rõ ràng?
let foo (x:string) (y:string) = "result: " + x + y
Có hại gì khi không rõ ràng? Chắc chắn, một lập trình viên có thể chọn sai loại cho những gì họ đang cố gắng làm, nhưng ít nhất tôi biết họ dự định, đó không chỉ là một sự giám sát.
Đây là một câu hỏi nghiêm túc ... Tôi vẫn còn rất mới với F # và đang rạo rực con đường cho công ty của tôi. Các tiêu chuẩn tôi áp dụng có thể sẽ là cơ sở cho tất cả mã hóa F # trong tương lai, được nhúng vào quá trình dán sao chép vô tận mà tôi chắc chắn sẽ thấm vào văn hóa trong nhiều năm tới.
Vậy ... có điều gì đặc biệt về suy luận kiểu của F # khiến nó trở thành một tính năng có giá trị để giữ, chú thích chỉ khi cần thiết? Hay chuyên gia F # -ers tạo thói quen chú thích các tham số của họ cho các ứng dụng không tầm thường?