注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 CCIE-Lab考试将新增10分钟..
 帮助

数组访问


2008-03-03 21:48:10
 标签:ruby 数组访问   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fsjoy.blog.51cto.com/318484/64002
1.数组访问,对于单个元素可以从左边0,1,2,...访问,从右边-1,-2...访问
例如a=['box',3,0,11,nil,'x']
a[0]->'box';  a[1]->3; a[-1]->'x'; a[-2]->nil
2.[start, count]访问方式
这样访问之后得到的是一个数组
例: a=[1,2,3,4,5,6]
a[1,2] -> [2,3]    #从a[1]开始(包括a[1])往后总共2个元素组成的数组
a[-3,2] ->[4,5]    #从a[-3]开始(包括a[-3])往后总共2个元素组成的数组
这样count只能是从左往右的顺序来取
3.a[start..end]和a[start...end]访问方式:
a[start..end]是从a[start]到a[end],包括a[start]元素和a[end]元素组成的数组(从左往右的顺序)
a[start...end]是从a[start]到a[end],不包括a[end]元素组成的数组
例:a=[1,3,5,7,9]
a[1..3]->[3,5,7]
a[1...3]->[3,5]
a[3..3]->[7]
a[-3..-1]->[5,7,9]
注意,这里的start->end必须是从左到右的顺序!
[]=规则:先得到左边那个表达式得出的数组,然后用右边的内容进行替换即可
例:
a=[1,3,5,7,9]
a[2,2]='cat'   #a[2,2]->[5,7],a[2,2]='cat'->[1,3,'cat',9]
a[2,0]='dog'  #a[2,0]->nil,把'dog'插入a[2]前面即可->[1,3,'dog','cat',9]
a[1,1]=[9,8,7] #a[1,1]->[3], a[1,1]=[9,8,7]->[1,9,8,7,'dog','cat',9]
a[0..3]=[]   #a[0..3]->[1,9,8,7],a[0..3]=[]->['dog','cat',9]
如果索引下标选择的元素不在原来数组里,那么调整原数组大小:
a[5..6]=[11,12]->['dog','cat',9,nil,nil,11,12]

本文出自 “李骥平” 博客,请务必保留此出处http://fsjoy.blog.51cto.com/318484/64002



上一篇 访问控制  下一篇 SongList容器



    文章评论
 
2008-03-04 10:04:40
例子不错啊

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: