1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
<html><title>Programming Ruby: The Pragmatic Programmer's Guide</title><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><STYLE TYPE="text/css"><!--
BODY { margin-left: 1in;
width: 6in;
font-family: helvetica, arial, sans-serif;
}
H1 { color: #000080;
font-family: helvetica, arial, sans-serif;
font-size: 22pt;
margin-left: 0in
}
H2 { color: #000080; font: bold x-large helvetica, sans-serif;
margin-left: 0in }
H3 { color: #000080; font: bold large helvetica, sans-serif; }
H4 { color: #000080; font: italic large helvetica, sans-serif; }
.ruby { background: #fff0f0 }
.header { color: white }
.subheader { color: #ffdddd }
.sidebar { width: 6in }
span.sans { font-family: helvetica, arial, sans-serif }
-->
</STYLE><table bgcolor="#a03030" cellpadding="3" border="0" cellspacing="0"><tr><td colspan="3"><table bgcolor="#902020" cellpadding="20"><tr><td><h1 class="header">Programming Ruby</h1><h3 class="subheader">The Pragmatic Programmer's Guide</h3></td></tr></table></td></tr><tr><td width="33%" align="left"><a class="subheader" href="ref_c_matchdata.html">Previous <</a></td><td width="33%" align="center" valign="middle"><a class="subheader" href="builtins.html">Contents ^</a><br></td><td width="33%" align="right"><a class="subheader" href="ref_c_module.html">Next ></a><br></td></tr></table></head><body bgcolor="white">
<!--
Copyright (c) 2001 by Addison Wesley Longman. This
material may be distributed only subject to the terms and
conditions set forth in the Open Publication License, v1.0 or
later (the latest version is presently available at
http://www.opencontent.org/openpub/).
-->
<table><tr><td height="20"><img src="dot.gif" width="1" height="20"></td></tr></table><table border="0" width="100%" bgcolor="660066" cellpadding="10"><tr><td valign="center"><font color="white" size="7">class Method</font></td><td><table border="0"><tr><td><font color="white">
Parent:
</font></td><td><font color="white">Object</font></td></tr><tr><td><font color="white">
Version:
</font></td><td><font color="white">
1.6
</font></td></tr></table></td></tr></table><p></p><H3>Index:</H3><a href="#_ob_cb"><i>[ ]</i></a> <a href="#arity"><i>arity</i></a> <a href="#call"><i>call</i></a> <a href="#to_proc"><i>to_proc</i></a> <p></p><hr>
Method objects are created by <a href="ref_c_object.html#method"><code>Object#method</code></a>, and are associated
with a particular object (not just with a class). They may be used
to invoke the method within the object, and as a block associated with
an iterator.
<P></P>
<table bgcolor="#fff0f0" cellspacing="0" border="0" cellpadding="3" width="500">
<tr>
<td colspan="3" valign="top"><code>class Thing</code></td>
</tr>
<tr>
<td colspan="3" valign="top"><code> def square(n)</code></td>
</tr>
<tr>
<td colspan="3" valign="top"><code> n*n</code></td>
</tr>
<tr>
<td colspan="3" valign="top"><code> end</code></td>
</tr>
<tr>
<td colspan="3" valign="top"><code>end</code></td>
</tr>
<tr>
<td colspan="3" valign="top"><code>aThing = Thing.new</code></td>
</tr>
<tr>
<td colspan="3" valign="top"><code>aMethod = aThing.method("square")</code></td>
</tr>
<tr>
<td colspan="3" valign="top"><code></code></td>
</tr>
<tr>
<td valign="top"><code>aMethod.call(9)</code></td>
<td valign="top"></td>
<td valign="top"><code>81</code></td>
</tr>
<tr>
<td valign="top"><code>[ 1, 2, 3 ].collect(&aMethod)</code></td>
<td valign="top"></td>
<td valign="top"><code>[1, 4, 9]</code></td>
</tr>
</table>
<P></P>
<P></P>
<table border="0" width="100%" cellpadding="10"><tr><td valign="center" colspan="2" bgcolor="990066"><font color="white" size="6">instance methods
</font></td></tr><tr><td valign="center" bgcolor="#ff9999"><font size="4"><a name="_ob_cb"><b>[ ]</b></a></font></td><td bgcolor="#ffaaaa">
<i>meth</i>[ <i>[</i><i>args</i><i>]<sup>*</sup></i> ]
-> <i>anObject</i>
</td></tr><td></td><td>
<P></P>
Synonym for <code>Method.call</code>.
<P></P>
</td><tr><td valign="center" bgcolor="#ff9999"><font size="4"><a name="arity"><b>arity</b></a></font></td><td bgcolor="#ffaaaa">
<i>meth</i>.arity -> <i>aFixnum</i>
</td></tr><td></td><td>
<P></P>
Returns an indication of the number of arguments accepted by a method.
Returns a nonnegative integer for methods that take a fixed number
of arguments. For Ruby methods that take a variable number of
arguments, returns -n-1, where n is the number of required
arguments. For methods written in C, returns -1 if the call
takes a variable number of arguments.
<P></P>
</td><tr><td valign="center" bgcolor="#ff9999"><font size="4"><a name="call"><b>call</b></a></font></td><td bgcolor="#ffaaaa">
<i>meth</i>.call( <i>[</i><i>args</i><i>]<sup>*</sup></i> )
-> <i>anObject</i>
</td></tr><td></td><td>
<P></P>
Invokes the <i>meth</i> with the specified
arguments, returning the method's return value.
<P></P>
<table bgcolor="#fff0f0" cellspacing="0" border="0" cellpadding="3" width="500">
<tr>
<td colspan="3" valign="top"><code>m = 12.method("+")</code></td>
</tr>
<tr>
<td valign="top"><code>m.call(3)</code></td>
<td valign="top"></td>
<td valign="top"><code>15</code></td>
</tr>
<tr>
<td valign="top"><code>m.call(20)</code></td>
<td valign="top"></td>
<td valign="top"><code>32</code></td>
</tr>
</table>
<P></P>
<P></P>
</td><tr><td valign="center" bgcolor="#ff9999"><font size="4"><a name="to_proc"><b>to_proc</b></a></font></td><td bgcolor="#ffaaaa">
<i>meth</i>.to_proc -> <i>aProc</i>
</td></tr><td></td><td>
<P></P>
Returns a <code>Proc</code> object corresponding to this method.
<P></P>
</td></table>
<P></P>
<p></p><hr><table bgcolor="#a03030" cellpadding="10" border="0" cellspacing="0"><tr><td width="33%" align="left"><a class="subheader" href="ref_c_matchdata.html">Previous <</a></td><td width="33%" align="center" valign="middle"><a class="subheader" href="builtins.html">Contents ^</a><br></td><td width="33%" align="right"><a class="subheader" href="ref_c_module.html">Next ></a><br></td></tr></table><p></p><font size="-1">Extracted from the book "Programming Ruby -
The Pragmatic Programmer's Guide"</font><br><font size="-3">
Copyright
©
2000 Addison Wesley Longman, Inc. Released under the terms of the
<a href="http://www.opencontent.org/openpub/">Open Publication License</a> V1.0.
<br>
This reference is available for
<a href="http://www.pragmaticprogrammer.com/ruby/downloads/book.html">download</a>.
</font></body></html>
|