Question
I am looking for a more elegant way of concatenating strings in Ruby.
I have the following line:
source = "#{ROOT_DIR}/" << project << "/App.config"
Is there a nicer way of doing this?
And for that matter what is the difference between <<
and +
?
Answer
You can do that in several ways:
-
As you shown with
<<
but that is not the usual way -
With string interpolation
source = "#{ROOT_DIR}/#{project}/App.config"
-
with
+
source = "#{ROOT_DIR}/" + project + "/App.config"
The second method seems to be more efficient in term of memory/speed from what I've seen (not measured though). All three methods will throw an uninitialized constant error when ROOT_DIR is nil.
When dealing with pathnames, you may want to use File.join
to avoid messing
up with pathname separator.
In the end, it is a matter of taste.