String concatenation in Ruby

前端 未结 16 1114
青春惊慌失措
青春惊慌失措 2020-11-28 01:28

I am looking for a more elegant way of concatenating strings in Ruby.

I have the following line:

source = \"#{ROOT_DIR}/\" << project <<          


        
16条回答
  •  独厮守ぢ
    2020-11-28 01:52

    I'd prefer using Pathname:

    require 'pathname' # pathname is in stdlib
    Pathname(ROOT_DIR) + project + 'App.config'
    

    about << and + from ruby docs:

    +: Returns a new String containing other_str concatenated to str

    <<: Concatenates the given object to str. If the object is a Fixnum between 0 and 255, it is converted to a character before concatenation.

    so difference is in what becomes to first operand (<< makes changes in place, + returns new string so it is memory heavier) and what will be if first operand is Fixnum (<< will add as if it was character with code equal to that number, + will raise error)

提交回复
热议问题