• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Ruby学习笔记-Array

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

    由于工作需要,最近在学习Ruby,现在主要在看两本书《Ruby on Rail程序设计技术详解》和《Ruby of book》。毕竟是要在工作中运用,而且时间还有限,所以我在看书和做例子的同时也简单记录下了一些基本知识点,方便用的时候查找。有兴趣的朋友欢迎一起交流学习:

l         数组

1.  创建数组

  和其它很多编程语言一样,很容易创建一个数组,但要注意的是Ruby是一种弱类型的脚本语言,数组中各元素的类型可以互不相同,而且数组的长度可变:

arr = [“one”,”two”,”three”]

OR

arr = Array.new                    #an empty array

arr = Array.new(5)               #[nil, nil, nil, nil, nil]

arr = Array.new(5,”hello”)    #[”hello”, ”hello”, ”hello”, ”hello”, ”hello”]

       当创建一个数组时,如果其元素为string类型且使用单引号,而你又不想老输入单引号,那么我们可以使用下面的方法来创建(使用%W来创建用双引号括起来的字符串)

arr = %w( this is an array of strings)    #使用空格作为元素的分隔符

 

2.通过索引存取数组的值:

Ruby中,数组索引可以是正整数(从前到后,从0开始)也可以是负整数(从后到前,从-1开始)还可以是范围(Range:

arr = ['h','e','l','l','o',' ','w','o','r','l','d']

print arr[0,5]

puts

print arr[0..4]

puts

print arr[0...4]

puts

print arr[-5,5]

--------Results--------

hello

hello

hell

world

 

Note: arr[-5,5]:前一个整数-5表示开始的索引,后面一个整数5表示数量

 

3..复制数组:

当使用=将一个数组变量赋值给另一个数组变量时,这两个数组变量引用的仍然是同一个数组,修改其中一个数组的值,另一个也会修改。我们可以使用Clone方法复制一个新数组:

arr = [one,two,three,]

arr1= arr               #arrarr1引用的还是同一个数组,修改一个另一个也会修改

arr2=arr.clone        #arr2arr的一个新版本,修改arr2不影响arr

 

4..比较数组大小:

       当使用 <=> 来比较两个数组a1a2时,有三种情况:

1.       a1 小于 a2 返回 -1

2.       a1 等于 a2 返回 0

3.       a1 大于 a2 返回 1

那么,数组是如何比大小的呢?

当两个数组进行比较时,会把两个数组相同索引(0开始)上的值拿来比较,如 [0,10,20]<=> [0,20,20], 则会返回-1,因为当索引为1时,10<20

 

另外,如果比较的两个数组的元素是字符串,那么就比较它们的ASCII;如果一个数组比另一个长且其它元素都相同,那么数组长的‘大’。

然而,如果一个短数组里面的一个元素比另一个长数组里面的同位置的元素大,则认为短数组‘大’。

arr1=[1,2,3,4,5]

arr2=[1,2,3,4,5]

arr3=[1,2,3,4]

arr4=[1,2,3,5]

arr5=[1000,2000,3000]

arr6=[1,2]

arr7=[2,1]

arr8=["hello", "world"]

arr9=["Hello", "World"]

 

p(arr1<=>arr2)      #     0

p(arr3<=>arr1)      #     -1

p(arr4<=>arr3)      #     1

p(arr5<=>arr4)      #     1

p(arr7<=>arr6)      #     1

p(arr8<=>arr7)      #     nil

p(arr9<=>arr8)     #     -1

 

5.数组排序:

Sort方法使用比较操作符 <=> 来比较一个数组中邻近的元素的大小,但是这个不能比较一个数组中包含有nil的值的情况;

arr.sort{|a,b| a.to_s <=> b.to_s}

说明: 在这arr是一个数组对象,ab代表相邻的两个元素。本方法使用了to_s方法把nil转换为一个空字符串,这样就可以对含有nil的数组进行排序了。此外,这个数组本身的值不会发生任何变在。

 

6.添加和删除数组元素:

       向数组添加元素:

unshift:向数组头部添加数组元素

push:   向数组头部尾数组元素

<< : 向数组尾部添加一个数组元素

向数组删除元素:

shift: 从头部删除数组元素,并返回被删除的元素

pop: 从尾删除数组元素,并返回被删除的元素


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ruby 比较符号==, ===, eql?, equal?发布时间:2022-07-13
下一篇:
ruby + phantomjs 自动化测试 - GA发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap