0-arity Scala yöntemi, ()
parantezleri ile veya olmadan kullanılabilir. Bu, kullanıcıya, yöntemin, daha sonra val
olarak uygulanabilecek olanın tersine, bir tür yan etkiye (örneğin, veriyi yitirmek veya yok etmek gibi) sahip olduğunu bildirmek için kullanılır.
Programming in Scala bakınız:
Böyle parametresiz yöntemler Scala oldukça yaygındır. Tersine, def yükseklik(): Int gibi boş parantezlerle tanımlanan yöntemler, boş-paren yöntemleri olarak adlandırılır. Önerilen kural, parametrelerin olmadığı her durumda parametresiz bir metot kullanmaktır ve metot, sadece içerilen nesnenin alanlarını okuyarak (özellikle değişebilir durumu değiştirmez) değişebilir duruma erişir.
Bu kongre üniforma erişim ilkesini desteklemektedir [...]
Özetlemek gerekirse, kapalı bırakarak herhangi bir parametre alıp yani parametresiz yöntemler olarak hiçbir yan etkileri vardır yöntemlerini tanımlamak için Scala stil teşvik edilmektedir boş parantezler. Öte yandan, hiçbir zaman parantez içermeyen yan etkileri olan bir yöntemi tanımlamamalısınız, çünkü o yöntemin başlatılması bir alan seçimi gibi görünür.
@MatthewFarwell Bağlantılı soru, parens sorusunu yanıtladığını sanmıyorum. –
Ayrıca bkz. Http://stackoverflow.com/questions/6939908/scala-functions-with-no-arguments –
Soru http://stackoverflow.com/questions/7409502/what-is-the-difference-between-def -foo-ve-def-foo-in-scala tam olarak aynıdır. – paradigmatic