a = Array.[](1,2,3,4)
b = Array[1,2,3,4]
c = [1,2,3,4]
d = Array.new #创建一个空数组
e = Array.new(3) #[nil,nil,nil] 初始大小3
f = Array.new(3,"xx") #["xx","xx","xx"] 初始大小3 初始值"xx"
f[0].capitalize! #=>["Xx","Xx","Xx"]
g = Array.new(3){"yy"} #=>["yy","yy","yy"]
g[0].capitalize! #=>["Yy","yy","yy"]
.all?这是一个ruby方法,他的返回结果只有两个,true或者false,判断的是数组中每一个元素都是true的就返回true,只要有一个不是true就返回false,如[nil,22].all?返回的就是false。还有就是判断数组遍历运算过程中,每一个结果是不是true,如[1,2,3].all?{|w| w >1}这个的结果就是false。你的例子中,作为判断对象的是一个空数组,不执行后面的代码,也没有一个元素是false的,所以返回的是true,这是我的见解
这个是将一串字符串转化成数组的方法
(1) 在默认无参传入的时候 ,是以空格为间隔 ,获得数组
pry(main)> " now's the time".split=> ["now's", "the", "time"]
(2) 如果接受一个字符参数 ,那么会按照这个字符参数进行分割变成数组
pry(main)> "mellow yellow".split("ello")=> ["m", "w y", "w"]
(3)如果接受的是两个参数 ,后面的参数是用来确定分割数组里面元素的个数,如果在按规则分割的时候 剩下多余的就变成一个元素
pry(main)> "mellow,yellow".split(//,4)=> ["m", "e", "l", "low,yellow"]
(4)当然split 参数 也接受正则表达式,如下
pry(main)> "hi mom".split(%r{\s*})=> ["h", "i", "m", "o", "m"]