Prev: [ANN] Rack 1.2, a modular Ruby webserver interface
Next: Loading a module without polluting my namespace
From: Chuck Brotman on 13 Jun 2010 14:30 Hi, I want to print an array (of strings, mostly) with commas separating the elements (so it would look like the result in the irb a =[one,two,three] printspecial a # should produce "[one, two, three]" not "onetwothree" as it # currently does I tried a.map{|s| s.to_s + ", " but this gives me [one, two, three,] with an extra comma trailing the last element Is there a nice ruby idiom to do what I want (or to simply produce the necessary string for printing? Or, do I have to resort to an explicit loop checking for the last element and not alter it? -- Posted via http://www.ruby-forum.com/.
From: Dominik Honnef on 13 Jun 2010 15:00 Chuck Brotman <brotman(a)nc.rr.com> writes: > Hi, > > I want to print an array (of strings, mostly) with commas separating the > elements (so it would look like the result in the irb [snip] > > Is there a nice ruby idiom to do what I want (or to simply produce the > necessary string for printing? a = ["one", "two", "three"] puts a.inspect puts "[" + a.join(", ") + "]" # >> ["one", "two", "three"] # >> [one, two, three]
From: Brian Candler on 13 Jun 2010 17:15 Chuck Brotman wrote: > I want to print an array (of strings, mostly) with commas separating the > elements (so it would look like the result in the irb You want String#inspect. (irb calls #inspect on the object it's displaying) $ irb --simple-prompt >> a = ["one","two","three"] => ["one", "two", "three"] >> puts a.inspect ["one", "two", "three"] => nil -- Posted via http://www.ruby-forum.com/.
From: リヴェリエ on 13 Jun 2010 17:31 [Note: parts of this message were removed to make it a legal post.] You can always try a * ", " % irb --simple-prompt >> a = ["a","b","c"] => ["a", "b", "c"] >> a * ", " => "a, b, c"
From: Josh Cheek on 13 Jun 2010 21:35 [Note: parts of this message were removed to make it a legal post.] On Sun, Jun 13, 2010 at 1:30 PM, Chuck Brotman <brotman(a)nc.rr.com> wrote: > Hi, > > I want to print an array (of strings, mostly) with commas separating the > elements (so it would look like the result in the irb > > a =[one,two,three] > printspecial a # should produce "[one, two, three]" not "onetwothree" > as it # currently does > > > I tried a.map{|s| s.to_s + ", " > but this gives me [one, two, three,] > with an extra comma trailing the last element > > Is there a nice ruby idiom to do what I want (or to simply produce the > necessary string for printing? > > Or, do I have to resort to an explicit loop checking for the last > element and not alter it? > -- > Posted via http://www.ruby-forum.com/. > > As other people have pointed out, you are looking for the inspect method. If you are wanting to print it p a puts a.inspect are the same thing. As far as your issue with the comma after the last element, the join method will do what you were trying to do with map, except it won't put it on the last element. a.join(', ') # => "1, 2, 3"
|
Next
|
Last
Pages: 1 2 Prev: [ANN] Rack 1.2, a modular Ruby webserver interface Next: Loading a module without polluting my namespace |