[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

What's the "#" for?

redrhodes

12/23/2005 12:11:00 AM

I've started on my first ruby project and came accross the following
code from:
http://habtm.com/articles/2005/11/13/your-site-doesnt-look-too-good-in...

Since I've managed to understand most of what's going on here, but I
still can't find a reference on how and why to use "#". From
following the code it looks like an escape character for a variable to
be populated when enclosed within quotes. Does anyone have enough
understanding on the syntax to help a ruby nubie?

class Hash
def to_sql
sql = keys.sort {|a,b| a.to_s<=>b.to_s}.inject([[]]) do |arr, key|
arr[0] << "#{key} = ?"
arr << self[key]
end
[sql[0].join(' AND ')] + sql[1..-1]
end
end

Thanks,
Richard

4 Answers

Joe Van Dyk

12/23/2005 12:32:00 AM

0

On 12/22/05, redrhodes <richstep911@gmail.com> wrote:
> I've started on my first ruby project and came accross the following
> code from:
> http://habtm.com/articles/2005/11/13/your-site-doesnt-look-too-good-in...
>
> Since I've managed to understand most of what's going on here, but I
> still can't find a reference on how and why to use "#". From
> following the code it looks like an escape character for a variable to
> be populated when enclosed within quotes. Does anyone have enough
> understanding on the syntax to help a ruby nubie?
>
> class Hash
> def to_sql
> sql = keys.sort {|a,b| a.to_s<=>b.to_s}.inject([[]]) do |arr, key|
> arr[0] << "#{key} = ?"
> arr << self[key]
> end
> [sql[0].join(' AND ')] + sql[1..-1]
> end
> end

a = "hay guys"
puts "this is what a is: #{ a }"

prints:
this is what a is: hay guys


J. Ryan Sobol

12/23/2005 12:40:00 AM

0


On Dec 22, 2005, at 7:32 PM, Joe Van Dyk wrote:

> On 12/22/05, redrhodes <richstep911@gmail.com> wrote:
>> I've started on my first ruby project and came accross the following
>> code from:
>> http://habtm.com/articles/2005/11/13/your-site-doesnt...
>> good-in-x-browser
>>
>> Since I've managed to understand most of what's going on here, but I
>> still can't find a reference on how and why to use "#". From
>> following the code it looks like an escape character for a
>> variable to
>> be populated when enclosed within quotes. Does anyone have enough
>> understanding on the syntax to help a ruby nubie?
>>
>> class Hash
>> def to_sql
>> sql = keys.sort {|a,b| a.to_s<=>b.to_s}.inject([[]]) do |arr,
>> key|
>> arr[0] << "#{key} = ?"
>> arr << self[key]
>> end
>> [sql[0].join(' AND ')] + sql[1..-1]
>> end
>> end
>
> a = "hay guys"
> puts "this is what a is: #{ a }"
>
> prints:
> this is what a is: hay guys
>

From the Ruby.new chapter in Programming Ruby : The Pragmatic
Programmer's Guide (http://whytheluckystiff.net/rub...)

"The second thing that Ruby does with double-quoted strings is
expression interpolation. Within the string, the sequence #
{ expression } is replaced by the value of expression. We could use
this to rewrite our previous method.

def sayGoodnight(name)
result = "Goodnight, #{name}"
return result
end

When Ruby constructs this string object, it looks at the current
value of name and substitutes it into the string. Arbitrarily complex
expressions are allowed in the #{...} construct."


Jeff

12/23/2005 12:43:00 AM

0

Just wondering, what language has been your main programming language
until now?

I'm always curious to know where the influx of new Ruby programmers are
coming from. I'm from a C++/C#/.Net background and while the syntax is
similar to both C++ and C# some things are definitely a bit different.

Jeff

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


redrhodes

12/23/2005 2:23:00 AM

0

Joe and Ryan, thanks for the examples and reference. I'll take a
closer looke at the pickaxe in the future.

Af for my previous programming experience: I've been a jack of all
trades for a while. But, I have the most experience in Perl, Python,
and C.

Richard