1.a = Array.new(3,[0,0,0])
=> [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
实例化出来的数组其实只是只有三个数组元素的一维数组而不是所期望的二维数组,虽然它可以a[i][j]取出元素,但是不要被其所迷惑
测试下
a[0][1] = 1
=> [[0, 1, 0], [0, 1, 0], [0, 1, 0]]
这可得知了,上面实例话的数组是三个数组对象元素的一维数组。
可以这样新建二维的,如下:
irb(main):056:0> a = Array.new(3){[0,0,0]}
=> [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
irb(main):057:0> a[1][1] = 1
=> 1
irb(main):058:0> a
=> [[0, 0, 0], [0, 1, 0], [0, 0, 0]]
2.连接字符串之实例多少个对象
连接符 —— “+
eg:
irb(main):037:0> a = "ti"
=> "ti"
irb(main):038:0> a.object_id
=> 17762940
irb(main):039:0> a = a + "is"
=> "tiis"
irb(main):040:0> a.object_id
=> 18255588
从上面可以看出,用连接符“+”连接字符串是要创建新的字符串对象的
再来看连接符“<<”和concat方法
eg:
irb(main):050:0> a = "this"
=> "this"
irb(main):051:0> a.object_id
=> 11012820
irb(main):052:0> a << " is"
=> "this is"
irb(main):053:0> a.object_id
=> 11012820
irb(main):054:0> a.concat(" string")
=> "this is string"
irb(main):055:0> a.object_id
=> 11012820
到这里,可以发现连接符“<<”和concat方法都是在原来的字符串对象连接上其他字符串,而不用新建对象引用
所以建议使用连接符“<<”和concat方法来处理连接字符串