`
a-bu
  • 浏览: 2429 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

ruby常用方法小記 --Array篇

阅读更多
Class  Array < Object

實例方法

&
arr & other_array -> an_array

交集

<=>
arr<=>other_array-> -1,0,1

比較---根據數組小于,等于或大于other_array,分別返回-1,0或1。每個數組中的每個對象都被比較.如果任何值都不相等,那么這次比較多結果將作為返回值返回.如果所有值都相等,則返回值由數組長度的比較結果確定.因此,根據Array#<=>當且僅當兩個數組長度相同且對應元素分別相等時才認為它們相等

["a", "a", "c"] <=> ["a", "b", "c"] -> -1

[1, 2, 3, 4, 5, 6] <=> [1, 2] -> 1


collect!
arr.collect!{|obj|block}-->arr

對arr的每個元素調用block,并用block的返回值去替換原元素.參見

a = %w(a b c d )
a.collect!{|x| x + "!"}
a


compact!
arr.compact! -> arr 或 nil


刪除arr中所有的nil元素.如果沒有改變內容,則返回nil

a = ["a", nil, "b", nil, "c", "d"]
a.compact
a
a.compact!
a


each_index
arr.each_index{|index|block} -> arr

除了傳遞到是元素的下表而不是元素本身之外,與Array#each相同

flatten
arr.flatten->an_array

返回一個新數組,該數組由原數組元素(遞歸)平鋪而成.

a = [1, 2, 3, 4, 5, 6]
t = [4, 5, 7, 9]
b = [a, t, 6,7,8]
b.flatten


include?
arr.include?(obj)->true或false

如果所給對象出現在數組中(也就是說如果數組的任何對象 == obj),則返回true,否則返回false.
a = %w(a, b, c)
a.include("b") -> true
a.include("g") -> false


join
arr.join(sqparator=$,)->str

將數組中的每個元素連接成一個字符串,使用分隔符來分割每個元素,并返回該字符串.
%w(a b c).join 
=> "abc"
%w(a b c).join("囧") 
=> "a囧b囧c"


pack
arr.pack(template)->binary_string


根據模板template中的指令將arr的內容打包成二進制字節序.指令A,a和Z后跟一個計數符,該計數符說明了生成字段的寬度.其余的指令也可以后跟一個計數符以表明被轉換的數組元素的個數.如果計數符是星號(*),則剩余的所有數組元素將被轉換."sSiIlL"指令中的任何一個都可后跟一個下劃線(_)以使用底層平臺的本地大小來表示指定的類型;否則使用平臺無關的大小.模板字符串的空格將被忽略.以#開頭到下一個新行或字符串結尾的注釋也被忽略.

a = %w(a b c)
n = [65, 66, 67]
a.pack("A3A3A3")
=> "a  b  c  "
a.pack("a3a3a3")
=> "a\000\000b\000\000c\000\000"
n.pack("ccc")


push
arr.push(<obj>*)->arr

將給定參數添加到數組中.
a = %w(a b c)
a.push %w(d e f)
=> ["a", "b", "c", ["d", "e", "f"]]


reject!
arr.reject!{block}item->arr或nil

等價于Array#delete_if,但如果沒做任何改變,則返回nil.

delete_if
arr.delete_if{|item|block} -> arr

刪除數組arr中那些能使block返回true的元素
a = %w(a b c)
a.delete_if{|x| x >= "b"}


reverse
arr.reverse -> an_array

反序arr的元素,并返回新數組

slice
arr.slice(int)->obj
arr.slice(start,length)->an_array
arr.slice(range)->an_array


a = %w(a b c d e f)
a.slice(2)
=>"c"
a.slice(1,2)
=> ["b", "c"]
a.slice(1..3)
=>["b","c","d"]


uniq
arr.uniq->an_array


刪除arr中的重復元素,并返回結果數組,重復元素是通過使用eql?和hash比較檢測出來的.
a = %w(a a b b c)
a.uniq
=> ["a", "b", "c"]




























































分享到:
评论

相关推荐

    ruby安装包-rubyinstaller-devkit-3.0.2-1-x64安装文件

    ruby安装包-rubyinstaller-devkit-3.0.2-1-x64安装文件 Ruby是一种面向对象、动态类型的脚本语言,由Yukihiro "Matz" Matsumoto于1995年创建。它以其简洁、优雅的语法和强大的编程能力而闻名,广泛应用于Web开发、...

    ruby安装包-rubyinstaller-devkit-3.0.2-1-x64.zip

    Ruby是一种面向对象、动态类型的脚本语言,由Yukihiro "Matz" Matsumoto于1995年创建。它以其简洁、优雅的语法和强大的编程能力而闻名,广泛应用于Web开发、脚本自动化、服务器管理等领域。RubyInstaller是Windows...

    src-oepkgs/ruby-ruby2ruby

    src-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2...

    ruby-debug-ide

    本文将深入探讨ruby-debug-ide的功能、安装、使用方法以及与其他工具的集成,帮助你提升调试效率,打造更稳健的Ruby应用程序。 一、ruby-debug-ide概述 ruby-debug-ide是一个基于ruby-debug的库,它将调试功能暴露...

    rh-ruby25-rubygems-devel-2.7.6-6.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    Ruby - Ruby 开发 - 常用知识点

    Ruby - Ruby 开发 - 常用知识点 backtracking、bit_manipulation、ciphers、conversions、data_structures、discrete_mathematics、dynamic_programming、electronics、maths

    ruby-oci8-2.1.5-x86-mingw32.gem

    ruby-oci8-2.1.5-x86-mingw32.gem,ruby连接oracle数据库gem包

    ruby-2.5.3-x64 下载

    标题中的"ruby-2.5.3-x64"指的是Ruby语言的特定版本,2.5.3,这是一个64位的构建。Ruby的版本迭代频繁,每个新版本通常会包含性能优化、新的特性和错误修复。2.5.3是2018年发布的一个稳定版本,它带来了诸如改进的...

    ruby参考速查--ruby常用类参考

    本文档的"Ruby参考速查"部分,主要关注Ruby中常用的类及其方法,为Ruby开发者提供了一个快速查阅的资源。 首先,我们来看`Array`类,它是Ruby中最常见的数据结构之一,用于存储有序的元素集合。Array类包含了许多...

    ruby-1.8.7-p302.tar.gz

    Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。...该版本为ruby-1.8.7-p302

    Ruby高级编程教程-世界顶级高校教材(完整版827页)

    ### Ruby高级编程教程知识点概述 #### 一、Ruby的基础与入门 - **Ruby的安装与运行** - 如何在不同操作系统(如Windows、Linux、macOS)上安装Ruby环境。 - 安装过程中可能遇到的问题及解决方法。 - 使用命令行...

    mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe

    mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe

    红宝石之书:冒险的动手指南The Book Of Ruby: A Hands-On Guide for the Adventurous

    - **方法调用**:Ruby中的函数称为“方法”,可以通过对象调用。 #### 2.3 面向对象编程 - **类与对象**:类是对具有相同属性和行为的对象的抽象,而对象则是类的一个实例。 - **继承与多态**:Ruby支持单继承和...

    ruby-1.8.7-p358-i386.rar

    ruby-1.8.7-p358-doc-chm.7z 3.65 MB 1,399 Other Other ruby-1.8.7-p358-i386-mingw32.7z 5.12 MB 1,503 i386 Other rubyinstaller-1.8.7-p358.exe 11.69 MB 13,534 i386 .exe (Windows executable)

    ruby-irb-1.8.7.352-13.el6.x86_64.rpm

    ruby-irb-1.8.7.352-13.el6.x86_64.rpm ruby-irb-1.8.7.352-13.el6.x86_64.rpm

    ruby安装包-rubyinstaller-devkit-3.0.2-1-x64安装包

    ruby安装包-rubyinstaller-devkit-3.0.2-1-x64安装包 Ruby是一种面向对象、动态类型的脚本语言,由Yukihiro "Matz" Matsumoto于1995年创建。它以其简洁、优雅的语法和强大的编程能力而闻名,广泛应用于Web开发、脚本...

    ruby-oci8-1.0.3-x86-mswin32.gem

    ruby-oci8-1.0.3-x86-mswin32.gem

    rh-ruby23-ruby-tcltk-2.3.0-60.el7.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

Global site tag (gtag.js) - Google Analytics