2012-03-14 74 views

回答

5
irb(main):001:0> a = "ezcezc" 
=> "ezcezc" 
irb(main):002:0> a << "erer" 
=> "ezcezcerer" 

irb(main):003:0> a += "epruneiruv" 
=> "ezcezcererepruneiruv" 
+1

我见过<<用于数组吗? – Akshat 2012-03-14 17:28:43

+0

是的,它也可以在数组中使用,以将新对象推入数组中。 – MrDanA 2012-03-14 17:34:30

+2

正确,但'+ ='和'<<'是不同的,这是什么样的例子? ezxezc? – 2012-03-14 18:08:17

3

尝试了这一点:

string += another_string 
+0

天哪就是这么简单:) – Akshat 2012-03-14 17:27:03

+0

总是与Ruby! – MrDanA 2012-03-14 17:34:36

1

你可以做string << another_string以及

8

基本上有两种不同的方式:

  1. <<(称为“铲子”)相连接,这相当于呼叫concat。请注意,像Ruby中的大多数运算符一样,<<是一个方法调用

    str = "foo" 
    str << "bar" 
    str #=> "foobar" 
    
  2. 串联并分配与+=

    str = "foo" 
    str += "bar" 
    str #=> "foobar" 
    

    重要的是要注意,这是相同是非常重要的:

    str = "foo" 
    str = (str + "bar") 
    

    这意味着用这种方式一个新对象创建了,而第一种方法则不是,因为对象已被修改。

+0

+1来解释两者之间的区别。 – josh3736 2012-03-14 17:40:22

+0

更好的答案。我冒昧地编辑它,因为'<<'是一个运算符,即使它对应于一个方法调用。 – 2012-03-14 18:11:17