当前位置:首页 > 开发 > 编程语言 > Ruby > 正文

ruby的基本类型(二)

发表于: 2010-06-04   作者:酷的飞上天空   来源:转载   浏览:
摘要: 数组常见运算方法 << 追加元素 例如:[1,2]<<3 返回[1,2,3] + 串联方法 合并两个数组 例如:[1,2]+[3,4] 返回[1,2,3,4] -  数组差集  删除比较数组中出现的元素 例如: [1,2,3]-[3,4] 返回[1,2] & 数组交集 例如[1,2,3]&[3,4] 返回[3] | 

数组常见运算方法

<< 追加元素 例如:[1,2]<<3 返回[1,2,3]

+ 串联方法 合并两个数组 例如:[1,2]+[3,4] 返回[1,2,3,4]

-  数组差集  删除比较数组中出现的元素 例如: [1,2,3]-[3,4] 返回[1,2]

& 数组交集 例如[1,2,3]&[3,4] 返回[3]

|  数组并集 例如:[1,2,3]|[3,4] 返回[1,2,3,4]

* 重复数组 如果*后面是整数则重复整数次数组,如果为字符串,则使用此字符串连接数组元素

例如:

[1,2,3]*2 #返回[1,2,3,1,2,3]
puts [1,2,3]*"--" #返回 1--2--3

 

数组具有枚举模块的所有方法。

其他常用方法

ary = []
ary.size/ary.length #返回数组的长度
ary.concat(other_array) #将other_array中的数组附加到ary中
ary.clear #清空数组
ary.delete(obj) #删除数组中与obj相等的元素,找到则返回,否则返回nil
ary.delete_at(index)#删除指定下标处的元素
ary.delete_if { |item| block  } #删除指定条件的元素(block返回true)
ary.first/ary.last #返回数组的第一个/最后一个元素
ary.compact #返回一个数组的副本,删除其中的nil元素
ary.flatten #返回一个只包含基本元素的数组
ary.index(obj) #返回第一个等于obj的元素下标
ary.insert(index, obj) #在指定位置插入对象到数组中
ary.join(sep) #合并数组为一个字符串,["a","b","c"].join("-") 返回a-b-c
ary.pop/ary.shift #删除数组中的最后一个/第一个元素
ary.push(obj) #类似于<<方法,将obj添加到数组中
ary.replace(other_array)#使用other_array替换掉数组中的内容
ary.reverse #反转数组中的元素

 散列hash

Ruby中散列直接对应的是Hash类,以下为创建一个散列的一些方法

s = Hash.new
s = Hash[1=>"a",2=>"b"]
s = {1=>"a",2=>"b"}
s = {:aa=>1,:bb=>2} #使用符号作为散列的键

 散列的常用方法

hsh = {:aa=>1}
hsh.clear #清空散列中所有键和值
hsh.delete(key) #删除散列中键为key的项
hsh.delete_if { |key,value| block  } #根据条件删除散列中的元素
hsh.has_key?(key) #检测是否含有键key
hsh.has_value?(value)#检测是否含有值value
hsh.index(value) #返回散列中值等于vlaue的键,返回第一个,没有返回nil
hsh.invert #返回逆转散列的键和值的新散列
hsh.keys #返回散列的键组成的数组
hsh.values #返回散列的值组成的数组
hsh.values_at(key) #返回给定的键,对应的值数组
hsh.length #返回散列中元素个数
hsh.merge(other_hash)#合并两个散列,如有重复键则使用other_hash中的值覆盖hsh中的值
hsh.replace(other_hash)#使用other_hash中的值替换hsh中相同键的值
hsh.to_a #将散列转换为数组

 正则表达式

创建方法

r = Regexp.new("\d")
r = /\d/
r = %r{\d}

 创建好了正则表达式对象就可以是用=~或match方法对字符串进行匹配

如:

str="2010-01-01 |||| 2010-01-01"
r = /\d{4}-\d{2}-\d{2}/
matches = str.scan(r)
puts matches

puts "============="

str.scan(r) { |match| puts match }
#输出:
#2010-01-01
#2010-01-01
#=============
#2010-01-01
#2010-01-01

 时间Time

now = Time.now
old = Time.local(1966,12,12,18,15,20)
puts now
puts old
puts old.strftime("%Y-%m-%m %H:%M:%S")

 输出:

2010-06-04 18:03:22 +0800
1966-12-12 18:15:20 +0800
1966-12-12 18:15:20
 

 

ruby的基本类型(二)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
15 .6 C# 对委托的支持 15.7对委托链调用进行更多控制 internal sealed class Light <
14 .4 调用接口方法详解 14.5接口方法的隐式和显式调用 14.6泛型接口 14.7 泛型接口和接口约束
16 .4 泛型接口 16.5泛型委托 16.6泛型方法 <img id="Codehighlighter1_32_735_Closed_Image"
体验一中添加了一个最基本的支架和一个简单的数据迁移,实现了一个基本的增删改查的功能列表。体验
Ruby学习笔记 ruby使用方法 the first half of ruby we are defining, we are creating 例如 blue_c
已经配置好Ruby on Rails 的开发环境了,现在开始来写地一个Ruby on Rails项目——输出Hello Ruby o
AaronYang风格就是:不讲老生长谈的东西,挑主题内难懂的地方细讲,其他总结一笔带过,有口诀教口诀
今天明白了一个困扰很久的问题:引用类型和基本类型的区别与联系 要明白这个问题,首先需要理解堆栈
JavaScript基本类型 一.布尔型 二.字符串型 三.数值型 四.函数 附源代码: 1.布尔型 <!DOCT
原文:http://gaolixu.iteye.com/blog/412973 基本类型,或者叫做内置类型,是JAVA中不同于类的特殊
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号