Thursday, June 26, 2008

Różnica pomiędzy count, length a size

W ruby on rails mamy do dyspozycji trzy metody określające ilość elementów w kolekcji - length, count, size. Aby zoptymalizować działanie naszej aplikacji warto jednak wiedzieć w jaki sposób działa każda z nich:


  • length (np. obiekt.kolekcja.length) - pobiera całą kolekcje, a nastepnie zwraca liczbę elementów

  • count (np. obiekt.kolekcja.count) - zwraca liczbę elementów nie pobierając kolekcji do pamięci (wykorzystuje SQLową instrukcję count)

  • size (np. obiekt.kolekcja.size) - metoda ta jest połączeniem działania dwóch poprzednich metod. Jeżeli obiekt.kolekcja został wcześniej pobrany to działanie jest podobne do instrukcji length, jeżeli natomiast kolekcja nie została pobrana wywołana zostanie instrukcja count



Mam nadzieję, że to krótkie wyjaśnienie pozwoli zrozumieć różnicę pomiędzy tymi trzema instrukcjami i jednocześnie pozwoli tworzyć bardziej efektywny kod.

1 comment:

Anonymous said...
This comment has been removed by a blog administrator.