Ruby 学习笔记 第五天

来源:转载

数组

arr = [1,2,3]

Ruby的数组索引也是从0开始

与传统push方法对应的是 << 运算符,弹出依旧是pop

同样有join方法

字符串同样可以通过split方法拆分成数组

数组的each方法可以遍历数组的每个元素:

["buke","popog",1,2,3,“test”].each {|elem| puts elem}

each方法并不对原数组中的元素进行修改,与之类似的collect方法则可以用代码块中表达式的结果替换原数组中对应的元素

["buke","popog",1,2,3,“test”].collect {|elem| elem.to_s + '.com'}


Ruby 中数组合并很方便:

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

y = [6,7,8,9,0]

z = x + y


有+既有-

用一个数组减去另一个,得到的结果是一个全新的数组,其中结果剔除了两数组相同元素。

a = [1,2,3,4]

b = [2,4,6,8]

c = a - b



可以用array.size或array.length是否大于0的方法来检查数组为空,Ruby中还定义了一个更为语义化的方法empty?.( 后缀问号很新颖啊),为空返回true,不为空返回false

arr = []

arr.empty?


检查数组是否具有某个元素,用include?方法,存在返回true,不存在返回false


访问数组第一个元素可以用first方法,与之对应的是访问最后一个元素可以用last方法:

x = [1,2,3]

puts x.first

puts x.last


如果对first或last方法指定数字参数,则得到数组从最开始或最末起的n个元素:

x=[1,2,3]

puts x.first(2)

reverse方法将数组反转,并产生全新的结果数组,并不影响原数组。


散列表

dictionary = {"web1" => "bukebuke.com","web2" => "popog.com"}

我觉得这里是Ruby实现的比较恶心的地方,明明一个冒号可以搞定的事情,偏偏要用 =>.

散列表的each方法将两个参数传递给代码块:第一个是键,第二个是该键对应的值。

散列表的keys方法返回一个包含所有键的数组。


删除散列表元素很简单,用delete方法即可:

x = {"a" =>1,"b"=>2}

x.delete("a")


delete方法通过键名删除元素,而delete_if方法则可按照一定规则删除元素

x= {"a"=>100,"b"=>50}

x.delete_if {|key,value| value>50}


分享给朋友:
您可能感兴趣的文章:
随机阅读: