[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Problem with: Exception: cannot convert Class into String

basi

12/22/2005 5:56:00 AM

Hello:

puts aString <<< no error printing aString here
process(aString)
.....
....
def process(aString)
puts aString <<< error printing aString here
end


The error is: Exception: cannot convert Class into String

What would it cause for aString to become a Class?

Thanks!
basi

6 Answers

konsu

12/22/2005 6:27:00 AM

0

hello,

this code is not complete, so it is difficult to guess why aString inside
the method is Class.

konstantin

"basi" <basi_lio@hotmail.com> wrote in message
news:1135230945.471145.67800@g44g2000cwa.googlegroups.com...
> Hello:
>
> puts aString <<< no error printing aString here
> process(aString)
> ....
> ...
> def process(aString)
> puts aString <<< error printing aString here
> end
>
>
> The error is: Exception: cannot convert Class into String
>
> What would it cause for aString to become a Class?
>
> Thanks!
> basi
>


basi

12/22/2005 6:42:00 AM

0

Yes, it is incomplete. I was illustrating that the variable aString is
of type string just before calling the method, and right inside the
method, in the very first command, it is diagnosed as a Class.

-- I renamed the parameter aString in the method definition. That does
not work.
-- I moved the order of calling the method earlier/later in the call
sequence. No dice.
-- I retyped the line. Didn't work.

No that I expected these to make a difference.

I redefined aString inside the method, thus:

def process(aString)
aString = "ohmy"
puts aString
end

It works, but doesn't solve the problem.

I wonder what kind of statement that I might have made somewhere in
the program that would turn a string variable into a Class?

Thanks!
basi

Nakada, Nobuyoshi

12/22/2005 7:02:00 AM

0

Hi,

At Thu, 22 Dec 2005 15:42:51 +0900,
basi wrote in [ruby-talk:172076]:
> Yes, it is incomplete. I was illustrating that the variable aString is
> of type string just before calling the method, and right inside the
> method, in the very first command, it is diagnosed as a Class.

Nobody can answer without concrete code.

--
Nobu Nakada


basi

12/22/2005 7:38:00 AM

0

Hi,
I found the problem. I should convert the value to a string:

Wrong (for my purpose)
aString = workStrings[0]

I got it to work with:
aString = workStrings[0].to_s

Cheers,
basi

Chintan Trivedi

12/22/2005 9:32:00 AM

0

even workStrings[0,1] will work too.
0 is the start position and 1 indicates how many chars to read from that
position

unlike C, in ruby string[0] returns the ascii value of the char at positon 0
and not char.

On 12/22/05, basi <basi_lio@hotmail.com> wrote:
>
> Hi,
> I found the problem. I should convert the value to a string:
>
> Wrong (for my purpose)
> aString = workStrings[0]
>
> I got it to work with:
> aString = workStrings[0].to_s
>
> Cheers,
> basi
>
>
>

basi

12/22/2005 4:44:00 PM

0

Thanks. This can come in handy, too.
basi