您的位置:首页 > 编程语言 > Ruby

我的Ruby学习历程之初识数组

2017-09-06 23:31 357 查看
一提存储容器,很明显就是存东西的,学Java时,学过数组,以及各种集合、Map;那么在Ruby中的类似的有没有差不多的容器呢?Ruby中也有数组(Array),但是这个数组我觉得更高级,更类似Java中的ArrayList,ArrayList不就是可变数组吗;Ruby中还有一个和Java中的Map相似的一种存储容器,称为Hash(杂凑)。

接下来,了解一下Ruby中数组的用法。

如何声明一个数组:

        name = ["kobe" , "james" , "curry"]

如果要声明一个空的数组就是  name = [ ]

在学习Java声明数组的时候要指定数组的大小,在Ruby中就不需要这些了;而Java中ArrayList的底层就相当于一个动态数组,它所表现出来的就和Ruby中的数组是差不多一个意思的;以为在Ruby中的这个数组也可以存取不同的类型。

要获取数组中的一个元素也是十分简单的,就是根据索引来获取的,当然索引一样也是从0开始的。

比如  print name[1] ,所得到的结果就是 james ;

其他的一样都是这样获取的:

                数组名 [ 索引 ]

如何往数组添加元素呢?

                数组名 [ 索引 ] = 要添加的元素

哎呦,这个时候就要注意了 ,如果相应的所以存在的话,就会把数组中原有的元素替换掉;如果相应所以不存在,数组就会自动扩大,把值赋给相应的位置,其他不够长度的位置自动赋值成nil ,这个值类似于Java中的null ;

用print、puts、p方法输出数组会显示出数组中的元素,如下所示:

name = ["kobe" , "james" , "curry"]

name[0] = "paul"

p name  ==> ["paul", "james" , "curry"]

name[4] = "yao"

p name   ==>["paul", "james" , "curry", nil ,"yao"]

我觉的这种感觉特别明显,编程语言之间很多地方真的都是相通的,在学习基础知识的时候多做一下联想,去比较它们之间是否有共同之处,这样我觉得对一些基础的学习是很有帮助的。

获取数组的大小,通过 数组名.size ,

比如上边更改之后的name ,p name.size 会得到 4 ;

数组存元素的目的当然是为了使用,如和对数组中所有的元素进行处理呢,学习Java时,ArrayList可以通过iterator()或listIterator()获取迭代器,依次迭代操作;而Ruby中的迭代器更高级更简单,哈哈

        数组名.each{ |变量|

            要执行的操作

        }

变量里存的是每次迭代时,元素的值;好比用一个变量接收iterator.next()吧

比如这个样子

name = ["kobe" , "james" , "curry"]

name.each{ | n |

    print(n , " , ")

}

这时输出的结果是    

    kobe , james , curry

这样进行操作感觉看起来特别舒服呀,哈哈;除了这种形式的方式迭代以外,还有其他的方式,需要以后慢慢的了解学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: