Özyinelemeli bir işlevde, bir kuyruk çağrısı optimizasyonu yapmak için sonucu adım adım adım taşımak etkilidir. Kullanıcıya bir parametre sağlamaya gerek olmadığını belirtmek için, bir "sonuç" parametresinin adlandırılması makul olabilir:
def removeOccurence [A] (slice: Seq[A], original: Seq[A]) = {
@scala.annotation.tailrec
def remove (leftOriginal: Seq[A], result: Seq[A]) : Seq[A] =
trimStart (slice, leftOriginal) match {
case (h :: tail) => remove (tail, h +: result)
case (Nil) => result.reverse
}
remove (original, Nil)
}
Ancak daha çok, vahşi doğada gördüğüm ve fikri çoğu zaman daha da iyi taşıyan “taşıma” ve “sofar” kullanıyorum.
Elbette, ikinci bir neden, eğer konunuz '' sonuç '' kelimesini önerirse, örneğin, aritmetik değerlendirme yaparsanız. Formülü ayrıştırabilir, değişkenleri değerlerle değiştirebilir ve sonunda bir sonuç hesaplayabilirsiniz.
Üçüncü bir neden daha önce belirtildi, ancak küçük bir sapma var: Bir iş yapan bir yöntem yazıyorsunuz, diyelim ki '' max '' şeklini değerlendirdiğini diyelim.
def max = {
val result = somethingElseToDo
if (foo) result else default
}
'' Sonuç '' sonucunu çağırmak yerine '' max '' diyebiliriz, ancak bazı dillerde bir yöntem çağrılırken parantezi ihmal edebilirsiniz, bu nedenle max yöntemin kendisine tekrarlı bir çağrı olacaktır.
Genelde sonucun ne olduğunu söyleyen bir ismi tercih ederdim. Fakat eğer bu isim zaten birden fazla değişken, öznitelik veya metot tarafından alınmışsa, bir GUI alanı olduğundan, bir dize temsili, sayısal ve bir diğeri veritabanı için, bir diğeri kullanmak karışıklık olasılığını arttırır. 3 ila 7 satırlık kısa yöntemlerde, '' sonuç '' bir isim için sorun olmamalıdır.
ofTheJedi
bu amaçla kullanıldığını gördüm . Bir öneri değil, sadece gördüm diyerek.Zorglub ofTheJedi = //...; return ofTheJedi;