@g500s: nie jest to rekurencja ogonkowa, poniewaz nie mozesz zewaluowac wartosci w tym wywolaniu, tym samym na stosie wywolan funkcji to dzialanie bedzie odlozone na pozniej. Doprowadzi to do przepelnienia stosu jesli popsujesz warunek stopu.

W rekurencji ogonkowej do kolejnego wywolania funkcji przekazujesz caly stan tak ze nie musisz odkladac na stosie stanu poprzedniego.

Taka zmiana
  • Odpowiedz
@M4ks: LOL, chodziło mi, że jest za dużo treści na jednej stronie i ciężko się przewija, bo pasek do przewijania jest taki malutki :s Próbowałem znaleźć ciekawe dla mnie artykuły i poległem na przewijaniu strony.
  • Odpowiedz
@MacDada:

1. Jeżeli metoda jest zaimplementowana w klasie rozszerzającej/implementującej to nie zostanie nadpisana.
2. Jeżeli klasa rozszerza inną klasę i implementuje interfejs, w wyniku czego mamy konflikt nazw, to nic się nie stanie. Kotlin posiada "optymistyczne rzutowanie", czyli jeżeli obiekt ma metodę o danej nazwie to uznaje się, że można go bezpiecznie rzutować na dany typ:

fun main(args:
  • Odpowiedz