, dizinin kimliği korunmuş değildir:Bir proc nesnesi `&`-`ve` gidiş dönüşünde nasıl korunur? bir yönteme geçirmeden zaman <code>*</code> içeren bir dizi uyarısı, o zaman yöntem içinde <code>*</code> ile ondan bir dizi yeniden
a = []
a.object_id # => 69846339548760
def bar *a; a.object_id end
bar(*a) # => 69846339537540
Ancak, bir dönüş yaparken
pr = ->{}
pr.object_id # => 69846339666160
def foo ≺ pr.object_id end
foo(&pr) # => 69846339666160
Nasıl proc nesne
korunur : bir yönteme geçirmeden zaman, o yöntemi içinde&
ile bloktan bir proc yeniden
&
ile bir blok haline proc proc kimliği korunmuş gibi görünüyor? Bir bloğa dönüştürüldüğünde kaybolmuyor mu? Bu garantili bir davranış mı?
Daha takip edilmelidir yani en azından biraz standart davranışı: 'def baz; Proc.new.object_id sonunu koyar; p = -> {}; p.object_id # ⇒ 9708320; baz &p ; # dolayı özel bir sözdizimi kuralına Yani @mudasobwa 9708320' – mudasobwa
olduğunu ⇒. Bir yöntem içinde bir blok içermeyen bir proc oluşturduğunuzda, yönteme geçirilen proc anlamına gelir. – sawa
Biliyorum, teşekkürler. Ben 'Proc.new' aslında bir constructor_ _not anlamına geliyordu. – mudasobwa