[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

&& Syntax

Lyndon Samson

4/1/2005 11:30:00 AM

Yes, I'm a rube-noob

-- ok
if 1 == 1 &&
2 == 2
puts "TRUE"
end

-- syntax error
if 1 == 1
&& 2 == 2
puts "TRUE"
end

The second form is more convienient as you can easily comment out the
line, but it causes a syntax error.

I guess the interpreter need to know where the conditional finishes
and the statements begin?

--
Into RFID? www.rfidnewsupdate.com Simple, fast, news.


3 Answers

Ralf Müller

4/1/2005 11:48:00 AM

0

On Fri, 1 Apr 2005 20:29:52 +0900
Lyndon Samson <lyndon.samson@gmail.com> wrote:

> Yes, I'm a rube-noob
>
> -- ok
> if 1 == 1 &&
> 2 == 2
> puts "TRUE"
> end
>
> -- syntax error
> if 1 == 1
> && 2 == 2
> puts "TRUE"
> end
>
> The second form is more convienient as you can easily comment out the
> line, but it causes a syntax error.
>
> I guess the interpreter need to know where the conditional finishes
> and the statements begin?
>
> --
> Into RFID? www.rfidnewsupdate.com Simple, fast, news.
>

What about:

irb(main):018:0> if 1 == 1 irb(main):019:2* && 2 == 2
irb(main):020:1> p 'df'; end
"df"
=> nil


Patrick Hurley

4/1/2005 1:18:00 PM

0

On Apr 1, 2005 6:29 AM, Lyndon Samson <lyndon.samson@gmail.com> wrote:
> Yes, I'm a rube-noob
>
> -- ok
> if 1 == 1 &&
> 2 == 2
> puts "TRUE"
> end
>
> -- syntax error
> if 1 == 1
> && 2 == 2
> puts "TRUE"
> end
>
> The second form is more convienient as you can easily comment out the
> line, but it causes a syntax error.
>
> I guess the interpreter need to know where the conditional finishes
> and the statements begin?
>

Ruby has a very relaxed parser -- that often (unlike C/Java/etc) uses
EOL to delimit expressions. If the parser scans an obvious hanging
statement (like the &&) it will determine that the expression spans to
the next line. You can use the \ to force the span. If you are after a
format that allows for easy commenting out of lines try:

if expr &&
expr &&
expr &&
true
p true
end

Patrick


nobu.nokada

4/1/2005 1:28:00 PM

0

Hi,

At Fri, 1 Apr 2005 20:29:52 +0900,
Lyndon Samson wrote in [ruby-talk:136283]:
> I guess the interpreter need to know where the conditional finishes
> and the statements begin?

The interpreter knows the conditional finishes at the end of
line. Note that newlines are significant in Ruby.

--
Nobu Nakada