[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

! and ? in function name

Tony

3/21/2006 5:04:00 PM

Hi Ruby-rulez !

I often look at some code, for example un rails/active_record, where
functions name end with a ? or a !

Is this a special notation, meaning that the func or args or whatever
have some treatment before/after the body ? Or to show that the function
return a boolean (?) and the arg modified (!) ?

Thanx ;)

--
Posted via http://www.ruby-....


4 Answers

Justin Collins

3/21/2006 5:11:00 PM

0

Tony wrote:
> Hi Ruby-rulez !
>
> I often look at some code, for example un rails/active_record, where
> functions name end with a ? or a !
>
> Is this a special notation, meaning that the func or args or whatever
> have some treatment before/after the body ? Or to show that the function
> return a boolean (?) and the arg modified (!) ?
>
> Thanx ;)

Generally the (?) means it returns a boolean and (!) means it modifies
the receiver (the object the method is being called on) in place, rather
than creating a new object.

For example:

irb(main):001:0> a = "Hello"
=> "Hello"
irb(main):002:0> a.include?('e')
=> true
irb(main):003:0> a.reverse
=> "olleH"
irb(main):004:0> a
=> "Hello" #unmodified
irb(main):005:0> a.reverse!
=> "olleH" #modified
irb(main):006:0> a
=> "olleH"


Hope that helps.

-Justin

--
Posted via http://www.ruby-....


Jacob Fugal

3/21/2006 5:11:00 PM

0

On 3/21/06, Tony <tony.moutaux@igbmc.u-strasbg.fr> wrote:
> Hi Ruby-rulez !
>
> I often look at some code, for example un rails/active_record, where
> functions name end with a ? or a !
>
> Is this a special notation, meaning that the func or args or whatever
> have some treatment before/after the body ? Or to show that the function
> return a boolean (?) and the arg modified (!) ?

The latter. The ? and ! characters in a method name have absolutely no
import to the parser/interpreter (well, no more import than does any
other character such as 'f' or 'q'). They only serve, by convention,
as an indicator to the programmer of the behavior of the method.

Jacob Fugal


13

3/21/2006 5:12:00 PM

0

Hi,

Here is an excerpt from the free online version of the Programming
Ruby book [1]:

...
Methods that act as queries are often named with a trailing ``?'',
such as instance_of?. Methods that are ``dangerous,'' or modify the
receiver, might be named with a trailing ``!''. For instance, String
provides both a chop and a chop!. The first one returns a modified
string; the second modifies the receiver in place. ``?'' and ``!'' are
the only weird characters allowed as method name suffixes.
.

[1] http://www.rubycentral.com/book/tut_me...

Martins

On 3/21/06, Tony <tony.moutaux@igbmc.u-strasbg.fr> wrote:
> Hi Ruby-rulez !
>
> I often look at some code, for example un rails/active_record, where
> functions name end with a ? or a !
>
> Is this a special notation, meaning that the func or args or whatever
> have some treatment before/after the body ? Or to show that the function
> return a boolean (?) and the arg modified (!) ?
>
> Thanx ;)
>
> --
> Posted via http://www.ruby-....
>
>


Tony

3/21/2006 5:19:00 PM

0

Thanks to all !

And specially Martin, because I read the given page twice today but
never the first paragraph, answering my (stupid) question.

--
Posted via http://www.ruby-....