I just set up my first ternary operator expression, and got a warning from Ruby, as a reward! I don't see what the problem might be:
The expression:
db_type= 'n' ? db = @nodes_h : db = @links_h
The warning:
../lib/setnet/SN.rb:781: warning: string literal in condition
I use string literals all the time in case statements, and other places, and have never had this objection.
Can someone explain the problem to me? I cannot imagine what it might be.
Thanks!
t.
···
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< tc@tomcloyd.com >> (email)
<< TomCloyd.com >> (website) << sleightmind.wordpress.com >> (mental health weblog)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# db_type= 'n' ? db = @nodes_h : db = @links_h
^^^
try replacing = with ==
···
From: Tom Cloyd [mailto:tomcloyd@comcast.net]
Alle Thursday 19 February 2009, Tom Cloyd ha scritto:
I just set up my first ternary operator expression, and got a warning
from Ruby, as a reward! I don't see what the problem might be:
The expression:
db_type= 'n' ? db = @nodes_h : db = @links_h
The warning:
../lib/setnet/SN.rb:781: warning: string literal in condition
I use string literals all the time in case statements, and other places,
and have never had this objection.
Can someone explain the problem to me? I cannot imagine what it might be.
Thanks!
t.
Ruby thinks you are likely to have written = instead of == in the condition.
Stefano
vimal
(vimal)
4
I guess your representation (db_type= 'n')
doesn't look like a condition, its like performing an assignment.
If its a condition it should be db_type == 'n'
Your representation (db_type= 'n' ? db = @nodes_h : db = @links_h)
assigns db_type the result of the following:
checks a condition 'n'
if true
db = @nodes_h
else
db = @links_h
end
Regards,
Vimal Das
···
On Feb 19, 1:59 pm, Tom Cloyd <tomcl...@comcast.net> wrote:
I just set up my first ternary operator expression, and got a warning
from Ruby, as a reward! I don't see what the problem might be:
The expression:
db_type= 'n' ? db = @nodes_h : db = @links_h
Stefano Crocco wrote:
Alle Thursday 19 February 2009, Tom Cloyd ha scritto:
I just set up my first ternary operator expression, and got a warning
from Ruby, as a reward! I don't see what the problem might be:
The expression:
db_type= 'n' ? db = @nodes_h : db = @links_h
The warning:
../lib/setnet/SN.rb:781: warning: string literal in condition
I use string literals all the time in case statements, and other places,
and have never had this objection.
Can someone explain the problem to me? I cannot imagine what it might be.
Thanks!
t.
Ruby thinks you are likely to have written = instead of == in the condition.
Stefano
Geee, I wonder why? Good Lord!
A real newbie mistake!
t.
···
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< tc@tomcloyd.com >> (email)
<< TomCloyd.com >> (website) << sleightmind.wordpress.com >> (mental health weblog)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Which, since any ruby object except nil and false is truthy is effectively
the same thing as
db_type = db = @nodes.h
which makes db_type, and db reference the same object, which is the return
valud of @nodes.h
···
On Thu, Feb 19, 2009 at 4:19 AM, vimal <cool.vimalsmail@gmail.com> wrote:
Your representation (db_type= 'n' ? db = @nodes_h : db = @links_h)
assigns db_type the result of the following:
checks a condition 'n'
if true
db = @nodes_h
else
db = @links_h
end
--
Rick DeNatale
Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale