:Neden "tekrar" değil * 3`de "3 * ile aynı" tekrar "Ruby'de"? Bunu yazarken
>> repeat repeat repeat
Ama bunu eğer işe yaramıyor:
puts 'repeat' * 3
alıyorum
puts 3 * 'repeat'
Neden?
:Neden "tekrar" değil * 3`de "3 * ile aynı" tekrar "Ruby'de"? Bunu yazarken
>> repeat repeat repeat
Ama bunu eğer işe yaramıyor:
puts 'repeat' * 3
alıyorum
puts 3 * 'repeat'
Neden?
Ruby'de, a * b
numaralı telefonu aradığınızda, a
numaralı telefondan *
adlı yöntemi çağırıyorsunuz demektir. örneğin, bu deneyin: String
üzerine *
yöntem tamsayılar nasıl işleneceğini anlar çünkü
a = 5
=> 5
b = 6
=> 6
a.*(b)
=> 30
c = "hello"
=> "hello"
c.*(a)
=> "hellohellohellohellohello"
Böylece
<String> * <Fixnum>
, gayet iyi çalışıyor. Bir dizi kopyasını bir araya getirerek yanıt verir. Eğer
3 * "repeat"
yaptığınızda
Ama, bir String
argüman ile Fixnum
üzerinde *
çağırma ediyor. Bu işe yaramıyor, çünkü Fixnum
'*
yöntemi başka bir sayısal türü görmeyi bekliyor.
gerçekten ... fantastik cevap ... aferin. – RubyDubee
Bu sızıntı bir soyutlamadır. http://www.joelonsoftware.com/articles/LeakyAbstractions.html – Levi
Sızan bir soyutlama olmadığını savunduğumda, * string ve fixnum için değişkendir. –