2012-06-27 3 views
5

Olası Çoğalt:
Ruby syntax question: Rational(a, b) and Rational.new!(a, b)Neden yeni bir yöntem yakut içinde Rasyonel oluşturmak için gerekli değildir

ben yakut kazma kitap okuma sürecinde yaşıyorum ve ben Rasyonel sayılar yaratmanın sözdizimi hakkında kafam karıştı.

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

Neden new yöntemi (Ben de yeni yöntem olmadan bir dize oluşturabilir örneğin ettim) Rational için gerekli değildir

=> 3/8 

üretir?

+1

Bu bir yöntemdir. –

+1

Ah evet, bu kopyayı görmedim. Haklısın. –

cevap

6

Bir şey için Ruby'nin new anahtar sözcüğü yok. new, tüm sınıfların bu sınıfın bir nesnesini oluşturan (Class öğesinden devraldıkları) bir sınıf yöntemidir. Rational(3,4), Rational gibi bir şey gördüğünüzde, yalnızca(Kernel olarak tanımlanmıştır) özel bir yöntemdir, bu da rasyonel sayılar oluşturmayı kolaylaştırır. Bu yapıcı-metotları hakkında daha fazla bilgi için şu cevaba bakın: https://stackoverflow.com/a/9677125/1008938

+0

Teşekkürler, üzgünüm, yeni yöntemi kastettim. –

+0

@JeffStorey: Oh. Ama cevabın geri kalanı hala duruyor. Ve bu bağlantıya bir bakın. – Linuxios

+0

Evet, şimdi anlıyorum, teşekkürler. –

3

Sınıfla aynı ada sahip olan bir yöntemdir. Ruby'de yaygın bir conversion idiom.

+1

Teşekkürler. Ben sadece sözdizimini öğrenmekten ziyade bu yaygın yakut deyimleri almak için iyi. –

İlgili konular