一、问题:
first_class = ['rails', 'ruby', 'l love ruby', {:a=>1,:b=>2,:c=>3,:d=>[6,7,8] }]
要求从first_class中拿出 ‘l love ruby’ 和 数组 [6,7,8]
二、解决思路:
可以看出上面的first_class是一个数组,其中的元素有字符串,也有散列,而"l love ruby"是数组的元素,数组[6,7,8]则是散列的value。
由此确定我们要捞出数组中"l love ruby"这个数组元素,以及数组元素{:a=>1,:b=>2,:c=>3,:d=>[6,7,8] }中的[6,7,8]这个value。
具体思路如下:
1.要捞出数组中的元素,可以用下标的方式访问,下标是从0开始
2.要捞出散列中的value值,可以通过使用key
3.对散列使用.values可以回传一个数组,通过回传的数组也可捞到想要的value值
三、操作过程:
进入终端,执行以下命令:
1.捞出"I love ruby"
终端执行:
first_class[2]
根据数组的数组长度特性
也可以执行:
first_class[-2]
同样可以捞出"I love ruby"
2.捞出散列{:a=>1,:b=>2,:c=>3,:d=>[6,7,8] }
终端执行:
first_class[3]
或
first_class[-1]
均可以捞出散列{:a=>1,:b=>2,:c=>3,:d=>[6,7,8] }
3.捞出散列{:a=>1,:b=>2,:c=>3,:d=>[6,7,8] }中的[6,7,8]
终端执行以下命令都可以获得[6,7,8]:
方案一:使用数组特性获得[6,7,8]
(1)
first_class[3].values[3]
(2)
first_class[3].values[-1]
(3)
first_class[-1].values[3]
(4)
first_class[-1].values[-1]
方案2使用散列的key值获取value值[6,7,8]
(1)
first_class[3][:d]
(2)
first_class[-1][:d]