`

ruby 数组与散列哈希小结

    博客分类:
  • ruby
 
阅读更多

首先安装 ruby

 

安装 rvm => ruby => rubymine

 

首先是数组的创建

 

names = [ ] #定义一个空数组
names = Array.new #创建数组
names = Array.new(20) #设置数组的大小

 

我们还可以返回数组的长度

 

names = Array.new(20)  
puts names.size  # 返回 20  
puts names.length # 返回 20  

 

 数组的运算

 

    << :追加元素

    +   :串联方法

    -    :数组差集

    &   :数组交集

    |    :数组并集

    *   :重复数组,如果*后面是整数,则返回重复整数次的数组,如果是字符串,则返回重复使用该字符串连接数组。

 

  1. [1,2] << 3       #[1,2,3]  
  2. [1,2] + [1,2]    #[1,2,1,2]  
  3. [1,2,3] - [3,4]     #[1,2]  
  4. [1,2,3] & [3,4]    #[3]  
  5. [1,2,3] | [3,4]     #[1,2,3,4]  
  6. [1,2] * 2     #[1,2,1,2,1,2]  
  7. [1,2] * '--'    #1--2  

 

 

数组的常用方法

 

array.at(index) 返回索引为 index 的元素。一个负值索引从 self 的末尾开始计数。如果索引超出范围则返回 nil。

array.clear 从数组中移除所有的元素

array.compact 返回 self 的副本,移除了所有的 nil 元素

array.delete_at(index) 删除指定的 index 处的元素,并返回该元素。如果 index 超出范围,则返回 nil 

array.empty? 如果数组本身没有包含元素,则返回 true

array.eql?(other) 如果 array 和 other 是相同的对象,或者两个数组带有相同的内容,则返回 true

array.first [or] array.first(n) 返回数组的第一个元素或前 n 个元素

array.join(sep=$,) 返回一个字符串,通过把数组的每个元素转换为字符串,并使用 sep 分隔进行创建的

array.last [or] array.last(n) 返回 self 的最后一个元素。如果数组为 空 ,则第一种形式返回 nil

array.pop 从 array 中移除最后一个元素,并返回该元素

array.push(obj, ...) 把给定的 obj 附加到数组的末尾

array.reverse 返回一个新的数组,包含倒序排列的数组元素

array.sort [or] array.sort { | a,b | block } 返回一个排序的数组

array.uniq 返回一个新的数组,移除了 array 中的重复值

 

 

散列hash

 

定义hash

 

h = Hash.new  
h = Hash[1=> 'a',2=> 'b']   
h = {a=> '1',b=> '2'}  

 

我们可以对hash进行简单的操作

 

items = [
{
barcode: 'ITEM000000',
name: '可口可乐',
unit: '瓶',
price: 3.00
},
{
barcode: 'ITEM000001',
name: '雪碧',
unit: '瓶',
price: 3.00
}
]


item[:barcode] # 对属性进行操作
item.push(item) #添加键值对
item.push(count:1) #添加属性
item << [ count : 1] #添加属性

 

 

hash常用方法

 

hash.clear 从哈希中移除所有的键值对

hash.[key] 使用键,从哈希引用值。如果未找到键,则返回默认值

hash.shift 从 hash 中移除一个键值对,并把该键值对作为二元素数组返回

hash.size 以整数形式返回 hash 的 size 或 length

hash.sort 把 hash 转换为一个包含键值对数组的二维数组,然后进行排序

hash.store(key, value) 存储 hash 中的一个键值对

hash.to_a 从 hash 中创建一个二维数组。每个键值对转换为一个数组,所有这些数组都存储在一个数组中

hash.to_s 把 hash 转换为一个数组,然后把该数组转换为一个字符串

hsh.invert:返回逆转Hash的键和值的新Hash

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics