Her şeyden önce: .say
yok DEĞİL aramaları, çünkü size kimlik değer vermek .gist
verilen ifadeye yöntemi. Kimlik değeri için .WHICH
yöntemi çağırmanız gerekir . Neyse ki, Block.gist
yöntem yapar kendi stringification kimlik değerini içerir. Ancak tüm nesneler için durum böyle değildir .
Orada gördüğünüz, işte statik optimize edici: çünkü blok içinde hiçbir şey olmuyor, atılabilir. O farklı bir durumda (eğer alternatif bir imza belirtilen yerde), bu ise farklı. Eğer bu komut dosyasını çalıştırırsanız --optimize=0
veya --optimize=1
daha sonra tüm bloklar olacak farklı kimlik değerleri vardır.
Bahsetmenin &?BLOCK
statik optimizer'ın kapsamı düzleştirmesini engellemediği bir sorun diyebilirsiniz . Öte yandan, buna DIHWIDT (Doktor, Bunu Yaptığımda Acıyor) vakası da diyebilirsiniz. O zaman yapma o zaman :-)
GÜNCELLEME: Farkı yaratan farklı imzadır. Daniel Mita ++