If Statement Help

Hi All

Im currently learning ruby and its going well. I have been looking at a
number of “guru” libraries such as DBI, CGI etc to try and learn by example.
I have noticed that a number of if statements have the following syntax eg:

if File.name?

Can someone please explain the ? usage as I have searched all over the
Pragmatic Programmer pages with no answer.

Thanks

Graeme Matthew
Analyst Programmer
Mercer Investment Consulting
Level 29, 101 Collins Street, Melbourne, VIC, 3001, Australia
Tel - 61 3 9245 5352 Fax - 61 3 9245 5330
visit http://www.merceric.com

···

__


This e-mail and any attachments may be confidential or legally privileged.
If you received this message in error or are not the intended recipient, you
should destroy the e-mail message and any attachments or copies, and you are
prohibited from retaining, distributing, disclosing or using any information
contained herein. Please inform us of the erroneous delivery by return
e-mail.

Thank you for your cooperation.


ec03/04

That’s just a part of the method name. Run “irb” and paste this
into it:

class Monkey
def hasFleas?
true
end
end
class Rking
def hasFleas?
false
end
end
Monkey.new.hasFleas?
Rking.new.hasFleas?

You will find that Monkeys have fleas while Rking’s decidedly do
NOT.

Anyway, the point is: Putting a question mark at the end of a
method name is a custom to imply that the method returns a
boolean.

  • Ryan
···

On 2002.09.19, Matthew, Graeme Graeme.Matthew@mercer.com wrote:

if File.name?

Can someone please explain the ? usage as I have searched all over the
Pragmatic Programmer pages with no answer.

Hi All

Im currently learning ruby and its going well. I have been looking at a
number of “guru” libraries such as DBI, CGI etc to try and learn
by example.
I have noticed that a number of if statements have the following
syntax eg:

if File.name?

Can someone please explain the ? usage as I have searched all over the
Pragmatic Programmer pages with no answer.

Methods that end with a question mark should return a Boolean value. This
is a coding convention, not a parser-enforced syntax rule.

James

···

Thanks