Учебники

Рубин — Методы

Методы 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 отображает ошибку.

пример

Live Demo

#!/usr/bin/ruby

def test(a1 = "Ruby", a2 = "Perl")
   puts "The programming language is #{a1}"
   puts "The programming language is #{a2}"
end
test "C", "C++"
test

Это даст следующий результат —

The programming language is C
The programming language is C++
The programming language is Ruby
The programming language is Perl

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

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

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

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

Ruby заявление о возврате

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

Синтаксис

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

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

пример

return

OR

return 12

OR

return 1,2,3

Посмотрите на этот пример —

Live Demo

#!/usr/bin/ruby

def test
   i = 100
   j = 200
   k = 300
return i, j, k
end
var = test
puts var

Это даст следующий результат —

100
200
300

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

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

Тем не менее, Ruby позволяет объявлять методы, которые работают с переменным числом параметров. Давайте рассмотрим образец этого —

Live Demo

#!/usr/bin/ruby

def sample (*test)
   puts "The number of parameters is #{test.length}"
   for i in 0...test.length
      puts "The parameters are #{test[i]}"
   end
end
sample "Zara", "6", "F"
sample "Mac", "36", "M", "MCA"

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

The number of parameters is 3
The parameters are Zara
The parameters are 6
The parameters are F
The number of parameters is 4
The parameters are Mac
The parameters are 36
The parameters are M
The parameters are 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 и псевдоним , интерфейс класса может быть изменен независимо от суперкласса, но обратите внимание, что он может нарушать работу программ внутренним вызовом метода self.

Синтаксис

undef method-name

пример

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