Güvenli operatör &.
Ruby 2.3 ve ActiveSupport'un try!
yönteminden değiştirilebilir mi? Yoksa, aralarındaki farklar nelerdir?Ruby 2.3 güvenli gezinme operatörü arasındaki farklar nelerdir? &. ve 'dene!' ActiveSupport yöntemi?
Q
Ruby 2.3 güvenli gezinme operatörü arasındaki farklar nelerdir? &. ve 'dene!' ActiveSupport yöntemi?
7
A
cevap
1
Önemli bir fark, try!
ek bir yöntem çağrısı, &.
ise. Bu burada
"1234"&.gsub(/\d/, "a")
$& #=> "1234"
Sürpriz yok yaratır bir (kuşkusuz yapmacık) farkın düşünebiliriz - regex küresel değişkenler ayarlanır yüzden regex maç yaptılar ($&
eşleşti dizedir).
Ama eğer
- Ben Sonra"1234".try!(:gsub, /\d+/, "a")
$& #=> nil
yapmak regex ilgili globaller sıfır olan (taze irb oturumda bu önemlidir). Bunun nedeni, bu globals'ların gerçekten küresel olmadıkları - kodun çağrıldığı yere bağlı oldukları (docs bu konu ve yöntem-global değişkenleri çağırıyor)
Bu durumda $&
hala ayarlanıyor; try!
yönteminin içinde ayarlandığından, hiç görmeyeceksiniz. /: Ekstra yöntem çağrısı da herhangi bir gerçek kullanımında rağmen (hızlı benchmark büyüklükte hemen hemen bir sipariş) Eğer try!
İlgili konular
- 1. RDD'lerin dilimleri ve bölümleri arasındaki farklar nelerdir?
- 2. Yüzey Görünümü ve TextureView arasındaki farklar nelerdir?
- 3. StringTemplate ve FreeMarker arasındaki temel farklar nelerdir?
- 4. OllyDbg ve WinDbg arasındaki farklar nelerdir?
- 5. R.styleable, R.style ve R.attr arasındaki farklar nelerdir?
- 6. Osql, isql ve sqlcmd arasındaki farklar nelerdir?
- 7. 'require`,' import` ve `use` arasındaki farklar nelerdir?
- 8. Model, ModelMap ve ModelAndView arasındaki farklar nelerdir?
- 9. Bildirim ve pynotify arasındaki farklar nelerdir?
- 10. .Net'de ConcurrentQueue ve BlockingCollection arasındaki farklar nelerdir?
- 11. Esnek büyüme ve genişlik arasındaki farklar nelerdir?
- 12. Https bağlantısı, Android 2.3 ve 4 arasındaki farklar
- 13. Farklı yollarda clang arasındaki farklar nelerdir?
- 14. ActiveSupport :: SecureRandom nasıl güvenli?
- 15. Derleyici ile bağlayıcı arasındaki farklar nelerdir?
- 16. Perl değişken bildirimi içinde $, @,% arasındaki farklar nelerdir?
- 17. arasındaki farklar
- 18. PHP'de system(), exec() ve shell_exec() arasındaki farklar nelerdir?
- 19. HAML, SASS/Compass ve ERB arasındaki temel farklar nelerdir?
- 20. Arm-eabi-gcc ve arm-elf-gcc arasındaki farklar nelerdir?
- 21. Matematik (E | PI) ve StrictMath'inki arasındaki farklar nelerdir?
- 22. Glob stili desen ve düzenli ifade arasındaki farklar nelerdir?
- 23. selenid() & gezinmek ve almak aşağıdaki arasındaki farklar nelerdir
- 24. VBA 6.0 ve VBA 7.0 arasındaki farklar nelerdir?
- 25. Repa 2 ve 3 API'leri arasındaki temel farklar nelerdir?
- 26. python2.5, pysqlite ve apsw'den sqlite3 arasındaki farklar nelerdir?
- 27. Şablon odaklı ve reaktif formlar arasındaki pratik farklar nelerdir?
- 28. Vektör, matris ve dizi veri türleri arasındaki farklar nelerdir?
- 29. Hazırda bekleme oturum yöntemleri saveOrUpdate() ve birleştirme() arasındaki farklar nelerdir?
- 30. -std = C++ 11 ve -std = gnu ++ 11 arasındaki farklar nelerdir?
http maliyetini cüce gerektiğini aradığınız gerçek yöntemin maliyeti
/mitrev.net/ruby/2015/11/13/the-operator-in-ruby/ bilmeniz gereken her şeye sahip. –try
yavaşlatırTLDR: çoğu durumda, neredeyse birbiriyle değiştirilebilirler, ancak bilmeniz gereken birkaç incelik var. –