Menu
Coddy logo textTech

Ruby Cheat Sheet: ściąga z Ruby

Ostatnia aktualizacja

Hello World i uruchamianie kodu

Ruby nie wymaga kodu szablonowego: wystarczy jedna linia.

OperacjaSkładnia
Wypisanie z nową liniąputs "Hello, World!"
Wypisanie bez nowej liniiprint "Hello"
Podgląd wartościp [1, 2, 3]
Interpolacja stringówputs "Hi #{name}"
Komentarz# this is a comment
Komentarz wieloliniowy=begin ... =end
Uruchomienie plikuruby app.rb
Powłoka interaktywnairb

Zmienne i typy

Ruby ma typowanie dynamiczne; wszystko jest obiektem.

OperacjaSkładnia
Zmienna lokalnaage = 30
StałaPI = 3.14
Zmienna instancji@name = "Ada"
Zmienna globalna$count = 0
Symbol:status
Nil / wartość logicznanil, true, false
Sprawdzenie typu42.class zwraca Integer
Konwersja typu"42".to_i, 42.to_s, "3.5".to_f

Stringi

Stringi to mutowalne obiekty z bogatym zestawem metod.

OperacjaSkładnia
Długość"hello".length
Wielkie / małe literys.upcase, s.downcase
Usunięcie białych znakóws.strip
Zamianas.gsub("a", "b")
Podział na tablicę"a,b,c".split(",")
Zawiera podciągs.include?("ell")
Wycinek znakóws[0..2]
Łączenie (konkatenacja)"foo" + "bar", s << "!"
Powtórzenie"ab" * 3
Formatowanieformat("%05d", 42)

Tablice

Uporządkowane kolekcje indeksowane liczbami całkowitymi.

OperacjaSkładnia
Utworzenienums = [1, 2, 3]
Dostęp przez indeksnums[0], nums[-1]
Dodanie na końcunums.push(4), nums << 4
Usunięcie z końcanums.pop
Długośćnums.length
Mapnums.map { |n| n * 2 }
Filtrowanienums.select { |n| n.even? }
Redukcjanums.reduce(0) { |sum, n| sum + n }
Sortowanienums.sort
Złączenie w stringnums.join(", ")

Hashe

Kolekcje klucz-wartość, często z symbolami jako kluczami.

OperacjaSkładnia
Utworzenieuser = { name: "Ada", age: 30 }
Dostęp do wartościuser[:name]
Ustawienie wartościuser[:email] = "a@x.com"
Sprawdzenie kluczauser.key?(:name)
Usunięcie kluczauser.delete(:age)
Klucze / wartościuser.keys, user.values
Iteracjauser.each { |k, v| puts "#{k}: #{v}" }
Wartość domyślnaHash.new(0)
Scalenieh1.merge(h2)

Instrukcje sterujące

Warunki i pętle; zwróć uwagę na modyfikatory końcowe w Ruby.

OperacjaSkładnia
If / elsif / elseif x > 0 ... elsif x < 0 ... else ... end
If w jednej linii (modyfikator)puts "hi" if ready
Unlessunless done ... end
Operator trójargumentowyx > 0 ? "pos" : "neg"
Case / whencase n; when 1 then ...; else ...; end
Pętla whilewhile i < 10 ... end
Pętla untiluntil done ... end
Times5.times { |i| puts i }
Iteracja po zakresie(1..5).each { |i| puts i }
Break / nextbreak, next

Metody

Ostatnie wyrażenie jest zwracane niejawnie.

OperacjaSkładnia
Definicja metodydef add(a, b) ... end
Niejawne zwrócenie wartościdef square(x) x * x end
Argument domyślnydef greet(name = "World") ... end
Argumenty nazwanedef box(w:, h:) ... end
Splat (zmienna liczba argumentów)def sum(*nums) ... end
Metoda zakończona ?def valid? ... end
Metoda zakończona !def normalize! ... end
Wywołanie bez nawiasówgreet "Ada"

Bloki, proce i lambdy

Bloki to fragmenty kodu przekazywane do metod; proce i lambdy je przechowują.

OperacjaSkładnia
Blok (klamry)[1, 2].each { |n| puts n }
Blok (do/end)[1, 2].each do |n| puts n end
Przekazanie sterowania do bloku (yield)def run; yield; end
Sprawdzenie, czy podano blokblock_given?
Przechwycenie bloku jako parametrudef run(&blk); blk.call; end
Utworzenie procasquare = proc { |x| x * x }
Utworzenie lambdysquare = ->(x) { x * x }
Wywołanie proca / lambdysquare.call(3), square.(3)

Klasy i moduły

Klasy przechowują stan i zachowanie; moduły dołączają wspólne metody.

OperacjaSkładnia
Definicja klasyclass Point ... end
Constructordef initialize(x, y) @x = x; @y = y; end
Metoda instancjidef dist ... end
Skróty akcesorówattr_accessor :x, :y
Utworzenie instancjip = Point.new(1, 2)
Dziedziczenieclass Circle < Shape ... end
Metoda klasydef self.origin ... end
Definicja modułumodule Drawable ... end
Dołączenie modułuinclude Drawable
Wywołanie supersuper(args)

Najczęściej używana składnia Ruby na jednej stronie. Ten Ruby cheat sheet to szybka ściąga z rdzenia języka: zmienne i typy, stringi, tablice i hashe, instrukcje sterujące, metody oraz bloki, proce i lambdy, dzięki którym Ruby jest tak ekspresyjny.

Wszystko tutaj to czysty Ruby, który działa w każdym standardowym interpreterze. Skopiuj to, czego potrzebujesz, albo uruchom każdy fragment w edytorze online Ruby, bez instalacji.

Ruby cheat sheet: FAQ

Czy ten Ruby cheat sheet jest darmowy?
Tak. Ten Ruby cheat sheet jest całkowicie darmowy i nie wymaga rejestracji. Dodaj go do zakładek i wracaj, gdy potrzebujesz sprawdzić metodę stringa, operację na hashu albo składnię bloku.
Czym różnią się blok, proc i lambda?
Blok to anonimowy fragment kodu przekazywany do metody przez { ... } lub do ... end; sam w sobie nie jest obiektem. proc opakowuje blok w wywoływalny obiekt, który możesz przechowywać i przekazywać dalej. lambda to specjalny proc, który ściśle sprawdza liczbę argumentów i traktuje return jako wyjście z samej lambdy, podczas gdy zwykły proc wychodzi z otaczającej metody.
Czym są symbole w Ruby?
Symbol, np. :name, to niemutowalny identyfikator wielokrotnego użytku. Ponieważ ten sam symbol zawsze wskazuje ten sam obiekt w pamięci, symbole są szybsze i oszczędniejsze pamięciowo niż stringi w roli kluczy hasha czy nazw metod. Dlatego hashe często zapisuje się jako { name: "Ada" }.
Czy mogę ćwiczyć Ruby online?
Tak. Otwórz edytor online Ruby, aby uruchomić dowolny fragment z tej ściągi w przeglądarce, bez instalowania Ruby. Gdy chcesz nauki krok po kroku, darmowy interaktywny kurs Ruby w Coddy przeprowadzi cię od zmiennych i stringów do bloków i klas.
Czy ta ściąga nadaje się dla początkujących?
Tak. Jest uporządkowana od najczęstszych tematów (zmienne, stringi, instrukcje sterujące) do bardziej zaawansowanych (bloki, proce, klasy), więc górne sekcje przydadzą się od pierwszego dnia, a resztę opanujesz z czasem.
Ilustracja języków programowania w Coddy

Naucz się języka Ruby z Coddy

ZACZNIJ