Живая неудача лучше мертвого шедевра (Б. Шоу).

Ruby – Методы

4 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
7 июля 2018
Язык программирования Ruby
Методы Ruby очень похожи на функции любого другого языка программирования. Методы Ruby используются для объединения одного или нескольких повторяемых операторов в одну единицу.

Имена методов должны начинаться со строчной буквы. Если вы начинаете имя метода с прописной буквы, Ruby может подумать, что это константа и, следовательно, может неправильно проанализировать вызов.

Методы должны быть определены перед их вызовом, иначе Ruby вызовет исключение для вызова неопределенного метода.

Синтаксис

def method_name [( [arg [= default]]...[, * arg [, &expr ]])]
   expr..
end

 

Таким образом, Вы можете определить простой метод следующим образом:

def method_name 
   expr..
end

 

Вы можете представить метод, который принимает параметры, пример:

def method_name (var1, var2)
   expr..
end

 

Вы можете установить значения по умолчанию для параметров, которые будут использоваться, если метод вызывается без передачи необходимых параметров:

def method_name (var1 = value1, var2 = value2)
   expr..
end

 

Всякий раз, когда вы вызываете простой метод, вы пишете только имя метода следующим образом:

method_name

 

Однако, когда вы вызываете метод с параметрами, вы пишете имя метода вместе с параметрами, такими как:

method_name 25, 30

 

Наиболее важным недостатком использования методов с параметрами является то, что необходимо запоминать количество параметров при каждом вызове таких методов. Например, если метод принимает три параметра и передает только два, то Ruby выводит сообщение об ошибке.

Пример

#!/usr/bin/ruby

def test(a1 = "Ruby", a2 = "Perl")
   puts "Язык программирования #{a1}"
   puts "Язык программирования #{a2}"
end
test "C", "C++"
test

 

Это приведет к следующему результату:

Язык программирования C
Язык программирования C++
Язык программирования Ruby
Язык программирования Perl

Возвращаемые значения из методов

Каждый метод в Ruby возвращает значение по умолчанию. Это возвращаемое значение будет значением последнего оператора. Например,

def test
   i = 100
   j = 10
   k = 0
end

 

Этот метод при вызове возвращает последнюю объявленную переменную k.

Заявление return в Ruby

Оператор return в ruby ​​используется для возврата одного или нескольких значений из Ruby-метода.

Синтаксис

return [expr[`,' expr...]]

 

Если указано более двух выражений, массив, содержащий эти значения, будет возвращаемым значением. Если не указано выражение, то nil будет возвратным значением.

Пример

return

OR

return 12

OR

return 1,2,3

 

Взгляните на этот пример:

#!/usr/bin/ruby

def test
   i = 500
   j = 600
   k = 700
return i, j, k
end
var = test
puts var

 

Это приведет к следующему результату:

500
600
700

Переменное число параметров

Предположим, вы объявляете метод, который принимает два параметра, всякий раз, когда вы вызываете этот метод, вам необходимо передать вместе с ним два параметра.

Однако Ruby позволяет объявлять методы, которые работают с переменным числом параметров. Рассмотрим пример:

#!/usr/bin/ruby

def sample (*test)
   puts "Количество параметров #{test.length}"
   for i in 0...test.length
      puts "Параметры #{test[i]}"
   end
end
sample "AndreyEx", "6", "F"
sample "Mac", "36", "M", "MCA"

 

В этом коде вы объявили образец метода, который принимает один параметр. Однако этот параметр является переменным параметром. Это означает, что этот параметр может принимать любое число переменных. Таким образом, приведенный выше код даст следующий результат:

Количество параметров 3
Параметры AndreyEx
Параметры 6
Параметры F
Количество параметров is 4
Параметры Mac
Параметры 36
Параметры M
Параметры MCA

Методы классов

Когда метод определяется вне определения класса, метод по умолчанию помечен как закрытый . С другой стороны, методы, определенные в определении класса, по умолчанию помечены как общедоступные. Видимость по умолчанию и частный знак методов могут быть изменены публичным или частным модулем.

Всякий раз, когда вы хотите получить доступ к методу класса, сначала необходимо создать экземпляр класса. Затем, используя объект, вы можете получить доступ к любому члену класса.

Ruby предоставляет вам способ доступа к методу без создания экземпляра класса. Давайте посмотрим, как объявлен и доступен метод класса:

class Accounts
   def reading_charge
   end
   def Accounts.return_date
   end
end

 

Посмотрите, как объявлен метод return_date. Он объявляется с именем класса, за которым следует период, за которым следует имя метода. Вы можете получить доступ к этому методу класса следующим образом:

Accounts.return_date

 

Чтобы получить доступ к этому методу, вам не нужно создавать объекты класса Accounts.

Утверждение псевдонима Ruby

Это дает псевдоним методам или глобальным переменным. Псевдонимы не могут быть определены внутри тела метода. Псевдоним метода сохраняет текущее определение метода, даже если методы переопределены.

Создание псевдонимов для пронумерованных глобальных переменных ($ 1, $ 2, …) запрещено. Переопределение встроенных глобальных переменных может вызвать серьезные проблемы.

Синтаксис

alias method-name method-name
alias global-variable-name global-variable-name

Пример

alias foo bar
alias $MATCH $&

 

Здесь мы определили псевдоним foo для bar, а $MATCH – это псевдоним для $ &

Заявление Ruby undef

Это отменяет определение метода. UNDEF не может появиться в теле метода.

Используя undef и псевдоним , интерфейс класса может быть изменен независимо от суперкласса, но обратите внимание, что он может быть сломан программ внутренним вызовом метода для себя.

Синтаксис

undef method-name

Пример

Чтобы определить метод, называемый bar, выполните следующие действия:

undef bar

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 14

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

    Добавить комментарий

    Войти с помощью: 

    Ваш e-mail не будет опубликован. Обязательные поля помечены *

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам:

    Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

    badge
    Обратный звонок 1
    Отправить
    galka

    Спасибо! Ваша заявка принята

    close
    galka

    Спасибо! Ваша заявка принята

    close