我的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
这样进行操作感觉看起来特别舒服呀,哈哈;除了这种形式的方式迭代以外,还有其他的方式,需要以后慢慢的了解学习。
接下来,了解一下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
这样进行操作感觉看起来特别舒服呀,哈哈;除了这种形式的方式迭代以外,还有其他的方式,需要以后慢慢的了解学习。
相关文章推荐
- 我的Ruby学习历程之初识条件判断
- 我的Ruby学习历程之初识循环控制
- 我的Ruby学习历程之初识方法
- 我的Ruby学习历程之初识Hash(杂凑)
- 我的Ruby学习历程之初识对象
- 我的Ruby学习历程之初识变量
- 我的Ruby学习历程之初识循环结构
- C语言学习历程(八)数组和指针的关系及几个程序
- C++学习笔记(第六章 初识指针 及 指针与数组 之一)
- 龙之历程——学习易经系列(2)之初识乾卦
- 菜鸟学习历程【3】 数据类型、运算符、语句、数组(1)
- ACM学习历程—HDU5592 ZYB's Premutation(逆序数 && 树状数组 && 二分)(BestCoder Round #65 1003)
- [C++学习历程]基础部分 C++中的指针数组和结构
- Android学习历程之四 Animation初识一
- ACM学习历程—HDU4417 Super Mario(树状数组 && 离线)
- FluorineFx学习历程(一):初识FluorineFx
- [C++学习历程]基础部分 C++中的指针数组和结构
- 菜鸟学习历程【7】 指针数组、数组指针、main命令行
- ruby学习---数组类(Array)
- Java基础学习——数组初识(1)