кодесурса

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

script1adsense2code
script1adsense3code

методы

Метод в Ruby - это набор выражений, который возвращает значение. Внутри метода вы можете организовать свой код в подпрограммы, которые могут быть легко вызваны из других областей их программы.

Имя метода должно начинаться с буквы или символа с восьмибитным набором. Он может содержать буквы, цифры, символ _ (подчеркивание или нижняя строка) или символ с восьмибитным набором. Соглашение состоит в том, чтобы использовать подчеркивания для разделения слов в имени метода с несколькими словами:

  • Определение метода начинается с ключевого слова def, за которым следует имя метода.
  • Параметры метода указываются в скобках после имени метода.
  • Определение метода заканчивается ключевым словом end в нижней части.

Пример:

 def print_data (значение)
  ставит ценность 
конец

Имена методов:

Имя метода должно начинаться с буквы или символа с восьмибитным набором. Он может содержать буквы, цифры, символ _ (подчеркивание или нижняя строка) или символ с восьмибитным набором. Соглашение состоит в том, чтобы использовать подчеркивания для разделения слов в имени метода с несколькими словами.

  • Имена методов совместимы с US-ASCII, поскольку клавиши для их ввода существуют на всех клавиатурах.
  • Имена методов могут заканчиваться на! (взрыва или восклицательный знак), а? (знак вопроса) или = знак равенства.
  • Методы взрыва (! В конце имени метода) вызываются и выполняются так же, как и любой другой метод.
  • Методы, заканчивающиеся знаком вопроса по соглашению, возвращают логическое значение. Но они не всегда могут возвращать просто true или false, часто они возвращают объект, чтобы указать истинное значение.
  • Методы, заканчивающиеся знаком равенства, указывают метод присваивания. Для методов присваивания возвращаемое значение игнорируется, вместо него возвращаются аргументы.

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

По умолчанию метод возвращает последний оператор, который был оценен в теле метода. Вы можете сделать это, используя ключевое слово return. В следующем примере последним вычисленным выражением была простая сумма 100 + 200.

 def add_values
  вернуть 100 + 200
конец

Оператор также используется для возврата перед вычислением последнего выражения.

 def add_values
  вернуть 100 + 200
конец
  300 + 200 # это выражение никогда не вычисляется
конец

Для методов присваивания возвращаемое значение всегда игнорируется. Вместо этого аргумент будет возвращен:

 def x = (значение)
  вернуть 100 + значение
конец
p (x = 500) # печатает 500

Аргументы:

В Ruby метод может принимать аргументы.

  • Список аргументов следует за именем метода.
  • Скобки вокруг аргументов являются необязательными.
  • Несколько аргументов разделяются запятой.
  • Аргументы позиционные.

Смотрите следующий пример:

def add_values(num1, num2)
  return num1 + num2
end

В приведенном выше примере при вызове метода необходимо указать два аргумента. Внутри тела метода аргументы являются локальными переменными. Затем метод добавит два аргумента и вернет значение. Если дано 100 и 200, этот метод вернет 300.

Значения по умолчанию:

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

def add_values(num1, num2 = 15)
  num1 + num2
end

Вызовите метод:

Вы можете вызывать методы с или без скобок. Вот синтаксис:

 # С круглыми скобками
UserMethod ()
# Без скобок
UserMethod

Вот пример:

# Without parentheses
def Print_String()
 puts("Method without parentheses")
end
# With parentheses
def Add_values(num1, num2)
  return num1 + num2
end
# Default Values
def default_values(num1, num2 = 12)
  return num1 + num2
end
Print_String()
puts(Add_values(100, 200))
puts(default_values(50))

Выход :

 Метод без скобок
300
62

Объем:

Вы можете определить метод экземпляра для определенного класса с помощью ключевого слова class:

class Student
  def admission
    # ...
  end
end

Метод может быть определен для другого объекта. Вы можете определить «метод класса» следующим образом:

class Student
  def self.admission
    # ...
  end
end

Вот синтаксис для добавления метода к объекту:


language ="Ruby"
def language.tutorial
 puts(self + ", Learning.")
end
language.tutorial # returns "Ruby, Learning."

Примечание: self - это ключевое слово, ссылающееся на текущий объект, который рассматривается компилятором.

Переопределение

Когда Ruby выполняет ключевое слово def, оно просто переопределяет его (независимо от того, существует метод или нет). Это называется переопределением. Смотрите следующий пример:

def language
 puts("We are learning PHP")
end
def language
 puts("We are learning Ruby")
end
# Now call the method
language

Выход :

 Мы учим Ruby 

Подробнее об аргументах

Разложение массива:

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

def add_numbers((n1, n2))
  p n1: n1, n2: n2
end
add_numbers([10, 20]))

Выход:

 {: n1 => 10,: n2 => 20}

Дополнительный аргумент в массиве игнорируется:

def add_numbers((n1, n2))
  p n1: n1, n2: n2
end
add_numbers([10, 20, 30]))

Выход:

 {: n1 => 10,: n2 => 20}

Используя *, вы можете собрать оставшиеся аргументы. Это разбивает массив на первый элемент и остальные:

def add_numbers((n1, *n2))
  p n1: n1, n2: n2
end
add_numbers([10, 20, 30]))

Выход:

 {: n1 => 10,: n2 => [20, 30]} 

Array / Hash Аргумент:

Добавьте префикс к *, чтобы преобразовать аргумент в массив. Аргумент массива должен быть последним позиционным аргументом, он должен появляться перед любыми ключевыми аргументами.

def gather_arguments(*arguments)
  p arguments
end
gather_arguments 1, 2, 3 # prints [1, 2, 3]

Аргумент массива будет захватывать Hash в качестве последней записи, если вызывающий объект отправил хеш после всех позиционных аргументов. Это происходит только в том случае, если метод не объявляет какие-либо ключевые аргументы.

gather_arguments 1, a: 2 # prints [1, {:a=>2}]

Также обратите внимание, что голый * может использоваться для игнорирования аргументов:

 def ignore_arguments (*)
конец

Ключевое слово Аргументы:

Аргументы ключевых слов аналогичны позиционным аргументам со значениями по умолчанию:

def add_values(first: 1, second: 2)
  first + second
end

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

 def collect_arguments (первый: ноль, ** остальные)
  р сначала отдыхай
конец
набор аргументов первый: 1, второй: 2, третий: 3
# печатает 1 затем {: second => 2,: third => 3}

Замечания:
а. При вызове метода с ключевыми словами аргументы могут появляться в любом порядке. Если вызывающий объект посылает неизвестный ключевой аргумент, возникает ArgumentError.
б. При смешивании ключевых аргументов и позиционных аргументов все позиционные аргументы должны появляться перед любыми ключевыми аргументами.

Блок Аргумент:

Аргумент блока используется для передачи блока другому методу. Аргумент блока обозначается символом & и должен стоять последним.

 def each_item (& block)
  @ Items.each (& блок)
конец

Обработка исключений:

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

 def my_method
  начать
    # код, который может вызвать исключение
  спасение
    # обработать исключение
  конец
конец

Может быть написано как:

 def my_method
  # код, который может вызвать исключение
спасение
  # обработать исключение
конец

Если вы хотите спасти исключение только для части вашего метода, используйте начало и конец. Для более подробной информации смотрите страницу по обработке исключений

Предыдущая: Заявление Ruby Loops
Следующая: Руби Классы

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code