Содержание этой страницы
Встроенные функции и методы Ruby
ОБЯЗАТЕЛЬНО ДЛЯ НОВИЧКОВ
Разработчику
Архитектору
Встроенные функции и методы Ruby
Ruby предоставляет набор методов верхнего уровня через модуль Kernel, включённый в класс Object. Эти методы доступны в любой точке программы без явного указания получателя. Справочник охватывает ключевые методы, часто используемые как встроенные функции.
Ввод и вывод
Метод Назначение Пример putsВыводит аргументы с добавлением символа новой строки после каждого puts "Привет", "Мир"printВыводит аргументы без добавления символов новой строки print "Загрузка..."getsСчитывает строку из стандартного ввода до символа новой строки name = gets.chompputcВыводит один символ по его коду ASCII или объекту символа putc 65printfФорматированный вывод по шаблону, аналогичный C printf "Цена: %.2f руб.", 19.99sprintfВозвращает отформатированную строку без вывода text = sprintf "%04d", 7
Управление выполнением программы
Метод Назначение Пример exitЗавершает программу с указанным кодом возврата exit 0abortЗавершает программу с сообщением об ошибке в stderr abort "Файл не найден"raiseГенерирует исключение указанного типа raise ArgumentError, "Неверный параметр"failСиноним метода raise fail "Ошибка подключения"sleepПриостанавливает выполнение на заданное количество секунд sleep 2.5loopБесконечный цикл, прерываемый через break loop { break if ready? }callerВозвращает массив строк с информацией о стеке вызовов puts caller.first
Создание объектов и преобразование типов
Метод Назначение Пример ArrayПреобразует аргумент в массив Array(1) #=> [1]HashПреобразует аргумент в хэш Hash([[:a, 1]]) #=> {:a=>1}StringПреобразует аргумент в строку через to_s String(42) #=> "42"IntegerПреобразует аргумент в целое число Integer("100") #=> 100FloatПреобразует аргумент в число с плавающей точкой Float("3.14") #=> 3.14ComplexСоздаёт комплексное число Complex(1, 2) #=> (1+2i)RationalСоздаёт рациональное число Rational(2, 3) #=> (2/3)procСоздаёт объект Proc из блока p = proc { |x| x * 2 }lambdaСоздаёт лямбда-функцию с строгой проверкой аргументов l = lambda { |x| x + 1 }
Проверка объектов
Метод Назначение Пример nil?Проверяет, является ли объект nil value.nil?defined?Проверяет существование имени или выражения defined?(x)respond_to?Проверяет, поддерживает ли объект указанный метод obj.respond_to?(:save)instance_of?Проверяет точное совпадение класса объекта obj.instance_of?(String)is_a?Проверяет принадлежность объекта к классу или его предкам obj.is_a?(Enumerable)kind_of?Синоним метода is_a? obj.kind_of?(Array)
Работа с переменными и объектами
Метод Назначение Пример object_idВозвращает уникальный идентификатор объекта :symbol.object_idcloneСоздаёт неполную копию объекта copy = original.clonedupСоздаёт поверхностную копию объекта copy = original.dupfreezeДелает объект неизменяемым str.freezefrozen?Проверяет, является ли объект неизменяемым str.frozen?sendВызывает метод по имени, переданному как символ или строка obj.send(:method_name, arg)public_sendБезопасный вариант send, вызывающий только публичные методы obj.public_send(:info)methodВозвращает объект Method для последующего вызова m = obj.method(:size); m.call
Отладка и интроспекция
Метод Назначение Пример pВыводит объект через inspect для отладки p [1, 2, 3]ppКрасиво форматированный вывод сложных структур (требует require 'pp') pp hashwarnВыводит предупреждение в stderr warn "Устаревший метод"caller_locationsВозвращает массив объектов Thread::Backtrace::Location caller_locations(1, 3)bindingВозвращает объект привязки текущего контекста eval("x + 1", binding)
Работа с окружением
Метод Назначение Пример ENVХэш-подобный доступ к переменным окружения ENV["HOME"]Dir.pwdВозвращает текущую рабочую директорию Dir.pwdDir.chdirИзменяет текущую рабочую директорию Dir.chdir("/tmp")ARGVМассив аргументов командной строки ARGV[0]RUBY_VERSIONСтрока с версией интерпретатора Ruby RUBY_VERSIONRUBY_PLATFORMСтрока с информацией о платформе RUBY_PLATFORM
Методы коллекций верхнего уровня
Метод Назначение Пример Array#empty?Проверяет, пуст ли массив [].empty? #=> trueHash#empty?Проверяет, пуст ли хэш {}.empty? #=> trueString#empty?Проверяет, пуста ли строка "".empty? #=> trueArray#sizeВозвращает количество элементов массива [1, 2, 3].size #=> 3Array#lengthСиноним метода size для массивов [1, 2].length #=> 2Array#include?Проверяет наличие элемента в массиве [1, 2, 3].include?(2) #=> true
См. также Другие статьи этого же раздела в боковом меню (как на странице «О разделе»).📄️ Основы языка Ruby Блок — это выражение поведения, передаваемое как часть вызова метода, без необходимости именования, инкапсуляции в отдельный класс или даже явного объявления переменной. Его синтаксис ( … или do …
📄️ Что требуется знать перед началом изучения языка программирования Ruby Фундамент для начинающего программиста - что повторить, как работать, чего ожидать.
📄️ Рекомендации по разработке на Ruby Набор советов, правил, принципов и обычаев в разработке на этом языке.
📄️ Объектно-ориентированное программирование в Ruby Язык поддерживает одиночное наследование, где класс может наследовать от одного родительского класса. Для указания наследования используется оператор <.
📄️ История языка Ruby Ruby — язык программирования, чья история характеризуется осознанной попыткой синтеза эстетики, выразительности и практичности. Его появление в середине 1990-х годов стало ответом на определённый…
📄️ Синтаксис и пунктуация в Ruby Кавычки, точки, запятые, скобки и прочие знаки препинания.
📄️ Ключевые слова языка Ruby Ключевые слова BEGIN и END пишутся заглавными буквами и отличаются от методов begin и end. Конструкции and, or, not имеют более низкий приоритет по сравнению с операторами , , , что влияет на порядок…
📄️ Типы данных в Ruby Типизация, набор правил определения типа данных значений языка.
📄️ Управляющие конструкции и циклы в Ruby В идиоматическом Ruby конструкция for почти не используется — предпочтение отдаётся each.
📄️ Фреймворки и экосистема Ruby Исторический контекст — как возникли Ruby-фреймворки, какие проблемы они решали и как развивалась экосистема.
📄️ Работа с базами данных из Ruby Ruby — язык, построенный на принципах человекоцентричности и выразительности, но при этом обладающий строгой архитектурой для работы с данными. Эффективное использование Ruby в задачах хранения,…
📄️ Асинхронность в Ruby Асинхронность — это подход к организации вычислений, при котором операции могут инициироваться без ожидания их немедленного завершения. Исполнение программы продолжается, а результат операции…
Ещё 8 статей в разделе