Cała oryginalna treść jest tworzona po ukraińsku. Nie wszystkie treści zostały jeszcze przetłumaczone. Niektóre posty mogą być dostępne tylko po ukraińsku.Dowiedz się więcej

is_a?, kind_of?, instance_of? — jak Ruby sprawdza typ obiektu?

Okładka posta: is_a?, kind_of?, instance_of? — jak Ruby sprawdza typ obiektu?
Spis treściKliknij link, aby przejść do wybranego miejsca
Ta treść została automatycznie przetłumaczona z ukraińskiego.
is_a?, kind_of?, i instance_of? w Ruby sprawdzają typ obiektu, ale z różną głębokością.

is_a? i kind_of?

One są równoważne - obie sprawdzają, czy obiekt jest instancją danego klasy lub jego potomka.
class Animal; end
class Dog < Animal; end

dog = Dog.new

dog.is_a?(Dog)      # true
dog.is_a?(Animal)   # true - ponieważ Dog < Animal
dog.kind_of?(Animal) # true - to samo

instance_of?

Sprawdza dokładną klasę, bez dziedziczenia.
dog.instance_of?(Dog)     # true
dog.instance_of?(Animal)  # false — ponieważ to potomek, nie sama klasa
Krótko mówiąc:
is_a? i kind_of? - sprawdzają w łańcuchu dziedziczenia
instance_of? - sprawdza tylko konkretną klasę

Ten post nie ma jeszcze żadnych dodatków od autora.

Co się stanie, jeśli wywołasz [1, 2, 3].map(&Person)
29 paź 17:54

Co się stanie, jeśli wywołasz [1, 2, 3].map(&Person)

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Klasa Singleton (eigenclass) w Ruby: co to jest i po co to potrzebne
29 paź 18:29

Klasa Singleton (eigenclass) w Ruby: co to jest i po co to potrzebne

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
==, equal?, eql?, === w Ruby: co sprawdzają i kiedy używać
29 paź 20:47

==, equal?, eql?, === w Ruby: co sprawdzają i kiedy używać

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Include, Extend, Prepend w Ruby: jak działają i jaka jest różnica
29 paź 21:20

Include, Extend, Prepend w Ruby: jak działają i jaka jest różnica

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
module_function w Ruby: kiedy metody modułu są dostępne jako modułowe i jako funkcje
29 paź 21:53

module_function w Ruby: kiedy metody modułu są dostępne jako modułowe i jako funkcje

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Czym jest memoizacja w Ruby?
30 paź 10:17

Czym jest memoizacja w Ruby?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
&& vs and — różnica w Ruby, która może zepsuć twój kod
30 paź 20:23

&& vs and — różnica w Ruby, która może zepsuć twój kod

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Zmienne w Ruby: @, @@ oraz zmienna instancji klasy
30 paź 20:54

Zmienne w Ruby: @, @@ oraz zmienna instancji klasy

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Różnica między blank?, present?, empty? a nil? w Ruby
30 paź 21:06

Różnica między blank?, present?, empty? a nil? w Ruby

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Czym jest Middleware w Ruby on Rails i kiedy jest używane
4 lis 10:39

Czym jest Middleware w Ruby on Rails i kiedy jest używane

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Czym jest podejście Vanilla Rails?
14 lis 16:48

Czym jest podejście Vanilla Rails?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska
Czym jest Elasticsearch i jak działa?
22 lis 12:35

Czym jest Elasticsearch i jak działa?

Нотатки про Ruby та RoR
Нотатки про Ruby та RoR@kovbaska