2012-06-27 28 views
5

thể trùng lặp:
Ruby syntax question: Rational(a, b) and Rational.new!(a, b)Tại sao phương pháp mới không cần thiết cho việc tạo Rational trong ruby ​​

Tôi đang trong quá trình đọc sách ruby ​​cuốc, và tôi nhầm lẫn về cú pháp tạo số hữu tỷ.

Rational(3,4) * Rational(1,2) 

sản xuất

=> 3/8 

Tại sao phương pháp new không cần thiết cho Rational (Tôi cũng nhận thấy ví dụ tôi có thể tạo ra một chuỗi mà không có phương pháp mới)?

+1

Vì đó là một phương pháp. –

+1

Ah vâng, tôi không thấy bản sao đó. Bạn nói đúng. –

Trả lời

6

Đối với một điều, Ruby không có từ khóa new. new là một phương thức lớp mà tất cả các lớp đều có (chúng kế thừa từ Class) để tạo một đối tượng của lớp đó. Khi bạn thấy một cái gì đó như Rational(3,4), Rational thực sự chỉ là một phương pháp riêng của Object (được xác định trong Kernel) mà làm cho việc tạo ra các số hữu tỷ dễ dàng hơn. Để biết thêm về các phương pháp xây dựng này, hãy xem câu trả lời của tôi: https://stackoverflow.com/a/9677125/1008938

+0

Cảm ơn có, xin lỗi tôi có nghĩa là phương pháp mới. –

+0

@JeffStorey: Oh. Nhưng phần còn lại của câu trả lời vẫn còn giữ. Và hãy xem liên kết đó. – Linuxios

+0

Vâng, tôi thấy bây giờ, cảm ơn. –

3

Đó là phương pháp có cùng tên với lớp học. Đó là một số phổ biến conversion idiom trong Ruby.

+1

Cảm ơn. Tốt để nhận các thành ngữ ruby ​​phổ biến này khi tôi đang học hơn là chỉ học cú pháp. –

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