我正在寻找一种在Ruby中连接字符串的更优雅的方式。

我有如下一行:

source = "#{ROOT_DIR}/" << project << "/App.config"

有更好的方法吗?

那么<<和+之间有什么区别呢?


当前回答

如果只是连接路径,可以使用Ruby自己的File。连接方法。

source = File.join(ROOT_DIR, project, 'App.config')

其他回答

如果只是连接路径,可以使用Ruby自己的File。连接方法。

source = File.join(ROOT_DIR, project, 'App.config')

因为这是一个路径,我可能会使用数组和join:

source = [ROOT_DIR, project, 'App.config'] * '/'

您可以使用+或<<操作符,但在ruby中.concat函数是最可取的,因为它比其他操作符快得多。你可以用它。

source = "#{ROOT_DIR}/".concat(project.concat("/App.config"))

木偶:

$username = 'lala'
notify { "Hello ${username.capitalize}":
    withpath => false,
}

+操作符是正常的连接选择,并且可能是连接字符串的最快方式。

+和<<之间的区别在于<<改变了对象的左侧,而+则不会。

irb(main):001:0> s = 'a'
=> "a"
irb(main):002:0> s + 'b'
=> "ab"
irb(main):003:0> s
=> "a"
irb(main):004:0> s << 'b'
=> "ab"
irb(main):005:0> s
=> "ab"