Có danh sách nào ở tất cả các toán tử ruby có thể bị ghi đè không? (Không phải những cái không thể!)danh sách các toán tử ruby có thể bị ghi đè/triển khai
Trả lời
Đây là a table of the Ruby operators.
Những người được phương pháp và overloadable là:
[ ] [ ]= Element reference, element set
** Exponentiation
! ~ + - Not, complement, unary plus and minus (method names for the last two are [email protected] and [email protected])
*/% Multiply, divide, and modulo
+ - Plus and minus
>> << Right and left shift
& Bitwise `and'
^ | Bitwise exclusive `or' and regular `or'
<= < > >= Comparison operators
<=> == === != =~ !~ Equality and pattern match operators (!= and !~ may not be defined as methods)
Bảng là từ Pickaxe cuốn sách năm 2001, nhưng đó là cùng một bảng như trong cuốn sách của Ruby 1,9 Pickaxe - không có lý do để tin rằng bộ này của các toán tử infix sẽ thay đổi.
Bởi "những cái là phương pháp và quá tải", tôi giả sử bạn có nghĩa là người ta chỉ có thể quá tải các nhà khai thác được phương pháp, không? Ngoài ra, trong khi các toán tử "thuần" không thể bị quá tải, người ta có thể lạm dụng các từ khóa giống từ giống hơn (ví dụ 'được định nghĩa?', 'Không',' hoặc', 'bắt đầu') làm tên cho các phương thức mới mà không có bất kỳ sự tốt đẹp nào. – fny
Thực ra,! = Và! ~ Có thể bị quá tải/xác định, mặc dù cái cuốc cũ nói rằng bạn không thể. Trở lại năm 2008 đã có một khiếu nại về nó trên danh sách gửi thư và Matz nhận xét rằng Ruby là linh hoạt. –
- 1. Toán tử ghi đè == trong Ruby
- 2. Có thể ghi đè các toán tử trong Java không?
- 3. Sử dụng toán tử toán tử danh sách (a :: b) làm hàm
- 4. toán tử == và danh sách :: remove()
- 5. Tại sao không có toán tử [] cho danh sách std ::?
- 6. câu hỏi về toán tử + ghi đè trong ruby
- 7. Có thể ghi đè toán tử hợp nhất không?
- 8. '|| =' toán tử trong Ruby
- 9. Các toán tử so sánh Ruby? == và ===
- 10. Ghi đè toán tử 'boolean' trong python?
- 11. Làm cách nào tôi có thể phân biệt $ _ trong các toán tử danh sách lồng nhau trong Perl?
- 12. Cách áp dụng toán tử logic cho tất cả các phần tử trong danh sách python
- 13. Có cách nào để ghi đè toán tử << trong Ruby không?
- 14. Toán tử "= ~" trong Ruby là gì?
- 15. Toán tử khác biệt danh sách Haskell trong F #
- 16. Tính toán tất cả các cặp mặt hàng có thể có từ hai danh sách?
- 17. Triển khai các toán tử so sánh khác về toán tử <trong một cuộc gọi
- 18. xóa các phần tử trong một danh sách có trong danh sách khác
- 19. Làm cách nào để tìm tất cả các phần tử có thể có trong danh sách?
- 20. Tìm tối đa danh sách các danh sách theo tổng các phần tử trong Python
- 21. Làm cách nào để tìm danh sách trong danh sách các danh sách có tổng số phần tử lớn nhất?
- 22. Làm cách nào để loại trừ một phần tử khỏi bị kéo trong danh sách có thể sắp xếp?
- 23. Python - viết danh sách danh sách các danh sách trong các cột
- 24. Toán tử || = đứng trong Ruby là gì?
- 25. Các phương pháp danh mục có thể bị ghi đè không? IOS
- 26. Ruby AWS - Tạo lập trình danh sách các loại cá thể AWS có sẵn
- 27. Làm cách nào để tôi có thể lặp lại danh sách các danh sách trong Scala?
- 28. Android, simple-xml, cách khai báo danh sách các phần tử?
- 29. Cách tìm các phần tử phổ biến trong danh sách các danh sách?
- 30. Tôi có thể lấy danh sách tất cả các phần tử iOS ở đâu?
** Quá tải ** là việc sử dụng cùng một tên phương thức cho các hành động khác nhau, trong đó phương thức chỉ có thể phân biệt bằng chữ ký của nó. Thực ra điều đó là không thể trong Ruby. Ghi đè hoặc xác định lại là thuật ngữ thích hợp ở đây. –
Cảm ơn các chi tiết, @platzhirsch. Tôi đã chỉnh sửa câu hỏi. Lạ như thế nào nó thường được gọi là quá tải nhà điều hành sau đó, không? – aaaidan
Vâng, giống như tôi, luôn luôn có thể cầu kỳ liên quan đến việc sử dụng các thuật ngữ và ý nghĩa của chúng :-) Sau tất cả nó có nguồn gốc từ các ngôn ngữ như C++, nơi nó có thể làm như vậy, nhưng dựa trên ngữ nghĩa khác nhau. –