Scala sürekliliği ile ilgili bir sorudur. resets
iç içe geçebilir mi? Eğer yapabilirlerse: resets
iç içe geçmiş ne için? İç içe geçmiş bir resets
örneği var mı?Scala'da iç içe sıfırlama örneği örneği
cevap
reset
Evet, iç içe olabilir ve evet, yararlı olabilir. Örnek olarak, GWT geliştiricilerinin doğrudan bir tarzda (Java için GWT'de kullanılan geri arama geçirme stilinin aksine) eşzamanlı olmayan RPC'leri (uzaktan yordam çağrıları) yazmasına olanak veren
scalagwt project için bir API'yi prototipledim. Örneğin:
field1 = "starting up..." // 1
field2 = "starting up..." // 2
async { // (reset)
val x = service.someAsyncMethod() // 3 (shift)
field1 = x // 5
async { // (reset)
val y = service.anotherAsyncMethod() // 6 (shift)
field2 = y // 8
}
field2 = "waiting..." // 7
}
field1 = "waiting..." // 4
Yorumlar, yürütme sırasını gösterir. Burada, async
yöntemi, bir reset
gerçekleştirir ve her servis çağrısı bir shift
gerçekleştirir (uygulamayı my github fork, özellikle Async.scala üzerinde görebilirsiniz).
Yuvalanmış async
denetim akışını nasıl değiştirdiğine dikkat edin. Bu olmadan, field2 = "waiting"
hattı, ikinci RPC'nin başarıyla tamamlanmasından sonra gerçekleştirilemez. RPC yapıldığında
, uygulama en iç async
sınır kadar devam yakalar ve RPC başarıyla tamamlanması üzerine yürütülmesi için askıya alır. Böylece, iç içe geçmiş async
bloğu, kontrolün ikinci RPC yapıldıktan hemen sonra hatta hemen akmasına izin verir. Bu iç içe geçmiş blok olmaksızın, devam, dış async
bloğunun sonuna kadar devam edecek, bu durumda dış async
içindeki tüm kodlar her bir RPC'de bloke olacaktır.
reset
, bir kodun, içindeki kodun devam sihriyle uygulandığı gerçeğinden etkilenmeyecek şekilde bir soyutlama oluşturur. Bu nedenle, sıfırlama ve kaydırma ile kod yazıyorsanız, sıfırlama ve kaydırma ile de uygulanabilecek veya uygulanmayabilecek başka kodları da çağırabilir. Bu anlamda iç içe olabilirler.
- 1. Scalada dize adına göre nesne örneği alma
- 2. OCaml'de iç içe imzalar örneği mi? OCaml yılında
- 3. sınıf örneği örneği
- 4. örneği
- 5. Scalada spark.implicits._ içe aktarılıyor
- 6. Bir yazım örneği örneği ve
- 7. D3.js'de basit bir dağılım örneği örneği?
- 8. Gözlemlenebilir.Join örneği
- 9. Usbserial örneği
- 10. MonadFix örneği []
- 11. NSSpeechRecognizer örneği
- 12. Şerit örneği
- 13. VM örneği
- 14. delegasyon örneği
- 15. MonadException örneği
- 16. Minimal çalışma Polimer örneği
- 17. Rspec newbie: İç içe geçmiş kontrolör testinin hızlı bir örneği mi?
- 18. Castle Windsor, adlandırılmış örneği ve adlandırılmamış örneği hatalı
- 19. C++ Yükseltme Örneği Konu arasında bir istisna atma örneği Örnek
- 20. Bir yakut örneği yönteminden yeni bir kendilik örneği nasıl döndürülür
- 21. CreateProcessWithTokenW - C# kullanım örneği
- 22. AbsListView örneği genişletme
- 23. Kakao Özel Bildirim Örneği
- 24. Telgraf API örneği başlatılıyor
- 25. Kullanıcı Örneği SqlLocalDb
- 26. Amazon RDS durağı örneği
- 27. Basit KVO örneği
- 28. Birden çok httpmodule örneği
- 29. PySide + QTableView örneği
- 30. Gözlemci Deseni/Reaktör Örneği