English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Методы 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 # -*- coding: UTF-8 -*- 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.
В Ruby return Эта инструкция используется для возвращения одного или нескольких значений из метода Ruby.
return [expr, ' ', expr...]
Если предоставлено более двух выражений, массив значений, содержащий эти значения, будет возвращен. Если выражение не предоставлено, возвращается nil.
return или return 12 или return 1,2,3
Посмотрите на следующий пример:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test i = 100 j = 200 k = 300 return i, j, k end var = test puts var
Результат выполнения примера приведен ниже:
100 200 300
Предположим, что вы объявили метод с двумя параметрами, при вызове этого метода вам также нужно передать два параметра.
Но Ruby позволяет вам объявлять методы с переменным количеством параметров. Давайте посмотрим на следующий пример:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def sample(*test) puts "Количество параметров: #{test.length}" for i in 0...test.length puts "Значение параметра: #{test[i]}" end end sample "Zara", "6", "F" sample "Mac", "36", "M", "MCA"
В этом фрагменте кода вы уже объявили метод sample, который принимает параметр test. Однако, этот параметр является переменным параметром. Это означает, что параметры могут иметь разное количество переменных. Результат выполнения примера приведен ниже:
количество параметров 3 значением параметра Zara значением параметра 6 значением параметра F количество параметров 4 значением параметра Mac значением параметра 36 значением параметра M значением параметра MCA
Когда метод определен вне класса, метод по умолчанию помечен как private. С другой стороны, если метод определен в классе, то по умолчанию он помечен как public.
методов и их видимости по умолчанию private Маркировка доступности方法是 по умолчанию через модуль(Module) public или private Изменение.
Когда вы хотите получить доступ к методам класса, вы сначала должны создать экземпляр класса. Затем, используя объект, вы можете обращаться к любым членам класса.
Ruby предоставляет способ доступа к методам без создания экземпляра класса Accounts. Давайте посмотрим, как объявлять и обращаться к классовым методам:
class Accounts def reading_charge end def Accounts.return_date end end
Мы уже знаем, как был объявлен метод return_date. Он объявлен с помощью точки после имени класса, за которой следует имя метода. Вы можете напрямую обращаться к методам класса, например:
Accounts.return_date
Чтобы получить доступ к этому методу, вам не нужно создавать объект класса Accounts.
Эта фраза используется для присвоения.alias методам или глобальным переменным. Alias не может быть определен в теле метода. Даже если метод перезаписывается, alias метода сохраняет текущее определение метода.
为编号的全局变量($1, $2,...)起别名是被禁止的。重写内置的全局变量可能会导致严重的问题。
Грамматика alias имя_метода имя_метода
alias глобальные переменные глобальные переменные alias foo bar
alias $MATCH $&
Командаundef Эта команда используется для отмены определения метода.
Не может出现在 теле метода. undef и aliasИнтерфейс класса можно изменять независимо от родительского класса, но请注意, что в методах внутреннего вызова он может разрушить программу.
undef имя_метода
Следующий пример отменяет имя barОпределение метода:
undef bar