Najlepszy samouczek Moduł Ruby (moduł) W 2024 r. W tym samouczku możesz dowiedzieć się Rubywymagają oświadczenie,Rubyinclude,Ruby w wstawek,
Moduł (Module) jest sposobem metod, klas oraz stałe połączone sposób. Moduł (Module) posiada dwie korzyści.
Module (Moduł) definiuje przestrzeń nazw, odpowiednik piaskownicy, swoje metody i stałe nie są stałe i metody konfliktu w innym miejscu w nim.
Moduł podobnej klasy, ale o innym wyglądzie:
module Identifier statement1 statement2 plplplplpl. end
Moduł o nazwie stałe i stałe klasy podobnej nazwie, zaczynając od wielkiej litery. Definicja Metoda wygląda następująco: podobnego podejścia modułowego określenia definicji metody klasy.
Za pomocą metod klasy, można umieścić nazwę modułu i kropkę przed nazwą klasy metody zadzwonić podejście modułowe, można użyć nazwy modułu i dwa dwukropki odwołać się na stałym poziomie.
#!/usr/bin/ruby # 定义在 trig.rb 文件中的模块 module Trig PI = 3.141592654 def Trig.sin(x) # pl end def Trig.cos(x) # pl end end
Możemy zdefiniować wiele funkcji o tej samej nazwie, ale o różnych modułach funkcjonalnych:
#!/usr/bin/ruby # 定义在 moral.rb 文件中的模块 module Moral VERY_BAD = 0 BAD = 1 def Moral.sin(badness) # pl. end end
Jak metod klasy, podczas definiowania metody w module, można podać nazwę modułu z kropką po kropka następuje nazwa metody.
wymaga stwierdzenie jest podobna do C i C ++, i zawierają instrukcje w instrukcji import Java. Jeżeli program innej chcesz użyć dowolnego z modułów zostały zdefiniowane, można po prostu użyćRubywymagają oświadczenie załadować plik modułu:
require filename
Tutaj, rozszerzenie pliku nie.rb wymagane.
$ LOAD_PATH << '.' require 'trig.rb' require 'moralne' y = Trig.sin (Trig :: PI / 4) wykroczenia = Moral.sin (Moral :: VERY_BAD)
Tu używamy$ LOAD_PATH << "." Niech Ruby wiemy, że musimy szukać pliku wskazanej w bieżącym katalogu.Jeśli nie chcesz korzystać z $ LOAD_PATH, można użyćrequire_relative odwołać plik z katalogu względnej.
Uwaga: W tym przypadku plik zawiera tę samą nazwę funkcji.Tak, będzie to prowadzić do zaciemniania, odnosząc się do programu wywołującego, ale moduły uniknąć tego zaciemniania kodu, możemy użyć nazwy modułu, aby wywołać odpowiednią funkcję.
Można umieścić moduł w klasie. W celu osadzenia w module klasy, można użyć instrukcjiincludew swojej klasie:
include modulename
Jeśli moduł jest zdefiniowany w osobnym pliku, więc zanim musiał użyć Moduł do wbudowaniawymagająoświadczenia odwołać pliku.
Zakładając następujące moduły napisane wsupport.rbpliku.
module Week FIRST_DAY = "Sunday" def Week.weeks_in_month puts "You have four weeks in a month" end def Week.weeks_in_year puts "You have 52 weeks in a year" end end
Teraz można odwołać się do modułu w klasie, co następuje:
#!/usr/bin/ruby $LOAD_PATH << '.' require "support" class Decade include Week no_of_yrs=10 def no_of_months puts Week::FIRST_DAY number=10*12 puts number end end d1=Decade.new puts Week::FIRST_DAY Week.weeks_in_month Week.weeks_in_year d1.no_of_months
To daje następujące wyniki:
Sunday You have four weeks in a month You have 52 weeks in a year Sunday 120
Przed przeczytaniem tej sekcji, musisz wstępnego rozumienia pojęć obiektowych.
Kiedy klasa może być więcej niż jedna klasa dominująca cecha gdy klasa dziedziczy klasa jest wyświetlany jako wielokrotnego dziedziczenia.
Ruby nie obsługuje bezpośrednio wielokrotne dziedziczenie, ale moduł Ruby (moduł) ma kolejny fantastyczny możliwości. To praktycznie eliminuje konieczność wielokrotnego dziedziczenia, dostarczono urządzeniezwane wstawki.
Ruby nie naprawdę osiągnąć wielokrotny mechanizm dziedziczenia, ale przyjęte jako wstawki technologii jako substytut. Moduły zawierają definicję klasy, podejście modułu mieszać do klasy.
Spójrzmy na następujący kod przykładowy, dogłębne zrozumienie wstawek:
module A def a1 end def a2 end end module B def b1 end def b2 end end class Sample include A include B def s1 end end samp=Sample.new samp.a1 samp.a2 samp.b1 samp.b2 samp.s1