Tôi đã quen với việc gõ động nghĩa là kiểm tra thông tin kiểu của cấu trúc đối tượng/không hướng đối tượng lúc chạy và ném một số loại lỗi, tức là nếu nó giống như vịt của nó. Có loại gõ động nào khác không (vui lòng xem chi tiết).Nhập động mà không cần gõ vịt?
Trả lời
Không, nhập động là khi giá trị có loại nhưng biến thì không, vì vậy hầu hết kiểm tra kiểu được thực hiện khi chạy. Vì vậy, về cơ bản, nếu giá trị đi hoặc quacks như một con vịt, đó là một con vịt, nếu không một lỗi được ném. Việc nhập Duck thực sự chỉ mô tả tính năng nhập động giúp đảm bảo tính năng an toàn (ví dụ: phương thức sẽ chỉ chạy nếu biến số foo
'có thuộc tính phù hợp hoặc có thể thực thi phương thức đó).
Có, tuyệt đối. Duck-đánh máy là một thành ngữ mà nói rằng loại giá trị tại thời điểm này trong thời gian được dựa trên các lĩnh vực và phương pháp mà nó có ngay bây giờ. Nhập động chỉ nói rằng các loại được kết hợp với giá trị thời gian chạy, không phải với các biến và tham số tĩnh. Có một sự khác biệt giữa hai, và bạn có thể sử dụng cái sau mà không có cái cũ.
Ví dụ: nếu bạn đã lập trình bằng PHP và giới hạn bản thân với các loại cơ bản mà không sử dụng OO, thì bạn sẽ sử dụng tính năng nhập động mà không cần sử dụng tính năng nhập-gõ.
Bạn có thể xây dựng trên ví dụ của mình không? là bạn chỉ đơn giản nói rằng kiểm tra kiểu lúc chạy là gõ động, trong khi kiểm tra dựa trên thử nghiệm sự tồn tại của phương pháp và tính chất của các đối tượng được gọi là gõ vịt? tức là, bạn sẽ nói rằng sự khác biệt giữa hai người phải làm với * đối tượng *? Trong cả hai trường hợp (hoạt động phi vịt và gõ vịt), có vẻ như khả năng tương thích của các hoạt động nhất định (gọi phương thức, bổ sung, vv) với các giá trị đầu vào được kiểm tra trong thời gian chạy; Có đúng không? sự khác biệt duy nhất là việc gõ vịt liên quan đến các đối tượng và việc gõ động là tổng quát hơn, đúng không? – EOL
@EOL: Vâng, gõ kiểm tra là gõ động (thực sự nên được gọi là 'kiểm tra động', kiểm tra sự tồn tại của tài sản là gõ con vịt. Điều 'quan tâm' đối tượng là một chút mơ hồ để nói rằng nó đúng, nhưng tôi nghĩ chúng ta Cả hai đều trên cùng một trang –
Cảm ơn! Bây giờ tôi thấy tốt hơn sự khác biệt giữa hai người. – EOL
- 1. Scala vịt gõ mô hình kết hợp
- 2. Có ngôn ngữ gõ vịt tĩnh nào không?
- 3. F # generic loại trở ngại và vịt gõ
- 4. "Nhập liệu vịt" từ nguyên?
- 5. nhập tĩnh mà không cần tên gói
- 6. jQuery datepicker mà không cần nhập
- 7. Tôi có thể cải thiện phương pháp này bằng cách gõ vịt không?
- 8. MEF (Khung mở rộng được quản lý) có gõ "vịt" không?
- 9. SDK trực tiếp - Thử đăng nhập mà không cần SignInButton
- 10. lấy nét() để nhập mà không cần cuộn
- 11. Mối quan hệ giữa mẫu C++ và kiểu gõ vịt là gì?
- 12. Cách gõ vịt bằng Python để xử lý sự kiện MVC trong pygame
- 13. Làm cách nào để thoát khỏi màn hình mà không cần gõ 'thoát'?
- 14. Regex tìm khối catch mà không cần đăng nhập
- 15. an ninh mùa xuân mà không cần mẫu đăng nhập
- 16. Đăng nhập Spring-Social mà không cần đăng ký
- 17. isinstance mà không cần nhập khẩu ứng cử viên
- 18. Chạy tập lệnh khi khởi động Windows mà không cần người dùng đăng nhập
- 19. Khởi động ứng dụng android mà không cần hoạt động
- 20. Khởi động lại nginx mà không cần sudo?
- 21. Cần xóa khóa MySQL InnoDB mà không cần khởi động lại cơ sở dữ liệu
- 22. git hợp nhất mà không cần cam kết tự động
- 23. Làm mới hoạt động mà không cần mở lại?
- 24. cách tải cửa sổ Hoạt động mà không cần xem?
- 25. tại sao for_each hoạt động mà không cần std :: prefix
- 26. Ruby on Rails: Hành động mà không cần xem
- 27. C# Ngôn ngữ được gõ động
- 28. stopPropagation mà không cần jQuery
- 29. button_to mà không cần gửi
- 30. Android mà không cần Java
Không chính xác. Nó không kiểm tra kiểu, chỉ loại có thể thực hiện một số toán tử X hoặc có một số thuộc tính Y. Nếu bạn gọi hàm toString() trên một biến, thì nếu nó là một đối tượng và nó thực hiện một phương thức toString() , sau đó nó sẽ được gọi, nếu không, bạn nhận được một lỗi. Nhưng nhiều loại có thể đáp ứng yêu cầu này. – siride
Điểm tốt, tôi sẽ thực hiện chỉnh sửa –