2015-04-20 17 views
5
x + y 

bunun için sözdizimsel şeker nedir+ = ruby ​​için metodun sembolü nedir?

x.send(:+, y) 

için sözdizimsel şeker nedir?

x += y 

Ben

x.send(:+=, y) 

denedim ama bir yöntem değildir

+1

Aww, Düzeltilmiş olabilirim ama bir tane olduğunu düşünmüyorum. – hirolau

+0

'+ =' bir yöntem değil, “artış ve atama” için dil genelinde sözdizimsel şeker. + + Karakterini geçersiz kılmak, otomatik olarak + =. – mudasobwa

+2

Kısaltılmış bir ödev: http://ruby-doc.org/core-2.2.2/doc/syntax/assignment_rdoc.html –

cevap

5

çalışmaz. Aşağıdakileri yazmak için kısa bir yoldur (sözdizimsel şeker):

x = 1 
#=> 1 
x += 1 # same as x = x + 1 
#=> 2 
+0

Orada bir = yöntem mi? x.send (: =, 1) da çalışmıyor. Ruby'deki her şeyin bir yöntem olduğunu mu düşündüm? – syclee

+3

@syclee '=' bir atama işlecidir ve Ruby'de bir yöntem değildir. –

+1

@syclee: Bunun nasıl çalışması gerektiğini düşünüyorsunuz? X'i x = ... 'ile yaratıyorsunuz. Yöntem çağrısını henüz oluşturulmamış bir şeye nasıl gönderebilirsiniz? –