Name
def Statement
Synopsis
def method([arg
...,arg
=default
..., *arg
, &arg
])code
[rescue [exception_class
[,exception_class
...]] [=>variable
] [then]code
]... [elsecode
] [ensurecode
] end
Defines a method. Arguments may include the following:
arg
Mandatory argument.
arg
=
default
Optional argument. If argument isn’t supplied by that which is calling the method, the
default
is assigned toarg
. Thedefault
is evaluated at runtime.*
arg
If there are remaining actual arguments after assigning mandatory and optional arguments, they are assigned to
arg
as an array. If there is no remainder, empty array is assigned toarg
.&
arg
If the method is invoked with a block, it is converted to a
Proc
object, then assigned toarg
. Otherwise,nil
is assigned.
Operators can also be specified as method names. For example:
def +(other) return self.value + other.value end
You should specify +@
or -@
for a single plus or minus, respectively. As
with a begin
block, a method definition may end
with rescue
, else
, and
ensure
clauses.
Get Ruby in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.