`

ruby code block

 
阅读更多
find

(1..5).find {|i| i == 5}
>5

(1..10).find {|i| i % 3 == 0}
>3

只返回第一个

(1..10).detect {|i| i % 3 == 0}
>3

(1..10).detect {|i| (1..10).include?(i * 3)}
>1

(1..10).find_all {|i| i % 3 == 0}
>[3, 6, 9]

(1..10).select {|i| (1..10).include?(i * 3)}
>[1, 2, 3]

(1..10).any? {|i| i % 3 == 0}
>true

(1..10).all? {|i| i % 3 == 0}
>false

[1..10].delete_if {|i| i % 3 == 0}
>[1, 2, 4 ,5, 7, 8, 10]



find/detect    =>  Object or nil
find_all/select    => Array
any?      => Boolean
all?    => Boolean
delete_if     => Array


search

h1 = { "a" => 111, "b" => 222}
h2 = {"b" => 333, "c" => 444}

h1.merge(h2)
>{“a”=>111, "b"=>333, "c"=>444}
h1.merge(h2)
>{"a"=>111, "b"=>222, "c"=>444}

h1.merge(h2) {|key, old, new| new}
>{“a”=>111, "b"=>333, "c"=>444}

h1.merge(h2) {|key, old, new| old}
>{"a"=>111, "b"=>222, "c"=>444}

h1.merge(h2) {|key, old, new| old * 5}
>{"a"=>111, "b"=>1110, "c"=>444}

h1.merge(h2) do |key, old, new|
    if old < new
      old
    else
      new
    end
end


merge后面的会覆盖前面的

h1.merge(h2) {|k, o, n| o < n ? o : n}
>{"a"=>111, "b"=>222, "c"=>444}
分享到:
评论

相关推荐

    ruby经典

    3. **块、迭代器与闭包**:Ruby中的块(block)是一种特殊的语法结构,可以配合迭代器(iterator)使用,实现类似函数的功能。块可以嵌套,且与闭包(lambda)有密切关系,理解这些对于编写高效代码至关重要。 4. *...

    ruby2.1.6安装文件

    3. **块参数**:这一版本改进了块处理的语法,允许在方法定义中直接声明块参数,如`-&gt;(args) { block_code }`,使得代码更加简洁。 4. **块和Proc对象**:Ruby 2.1加强了Proc对象,使其可以作为方法参数传递,并且...

    重构--Ruby 完整扫描清晰版--中文

    在Ruby中进行重构,需要开发者熟悉其语言特性,比如动态类型、块(block)、混入(mixin)等,以便更加高效地改进代码。 文档中出现的大量重复链接“更多资源请访问稀酷客(***)”可能是某种出版商或者版权信息的...

    详解Ruby中的块的知识

    puts "BEGIN code block" } END { # END block code puts "END code block" } # MAIN block code puts "MAIN code block" ``` 当你运行这段代码时,将看到以下输出: ``` BEGIN code block MAIN code block ...

    Ruby.Pocket.Reference

    - **Running the Ruby Interpreter:** Explains how to execute Ruby code using the interpreter. This section likely covers the basic command-line usage of the `ruby` command and how to run scripts ...

    Ruby on Rail 基础知识 一张纸

    - `kcode`: 设置正则表达式的编码方式。 - `match`: 执行正则匹配。 - `source`: 获取正则表达式的源码。 3. **时间处理方法**: - `asctime`: 以可读格式返回时间。 - `ctime`: 返回ctime格式的时间。 - `day`...

    Ruby入门培训ppt/pdf及代码

    Ruby开发者常用的工具有TextMate、Sublime Text、VS Code等编辑器,以及Git进行版本控制,Rake用于构建任务,RSpec进行测试驱动开发。 **10. 学习资源** 除了本培训资料,还有众多在线资源可供学习,如Ruby官方网站...

    multi_block:将多个块传递给 Ruby 方法

    多块 MultiBlock 是一个迷你框架,用于将多个块传递给方法。 它使用以简单的语法完成此操作。 接收方法可以产生所有块,也可以只调用特定的块,由顺序或名称标识。...yield :success , "Code Brawl!" # calls

    Rails for .NET Developers (Facets of Ruby)

    2. **语言特性对比:** 本书将详细探讨Ruby与C#的语言特性差异,比如动态类型、块(Block)和元编程等Ruby特有的功能,以及它们如何影响程序设计方式。 3. **代码示例:** 书中提供了大量的代码示例,用以展示相同功能...

    bookofruby_code

    《Ruby编程语言》是一本深入探讨Ruby语言的权威著作,其配套代码库“bookofruby_code”包含了书中各个章节的示例代码。这些代码旨在帮助读者更好地理解和实践Ruby的语法特性、控制结构、面向对象编程、函数式编程、...

    代码编辑器,显示行号

    CodeMirror支持多种编程语言和文件类型,如HTML、CSS、JavaScript、Python、Java、Ruby等,通过加载相应的语言模式模块,可以实现不同语言代码的智能提示和高亮。 8. **事件处理和键盘绑定**: 编辑器提供了丰富...

    在Ruby on Rails中使用Markdown的方法

    def block_code(code, language) language = "text" if language.blank? sha = Digest::SHA1.hexdigest(code) Rails.cache.fetch ["code", language, sha].join("-") do Pygments.highlight(code, :lexer =&gt; ...

    code_wars:来自Code Wars katas的解决方案集合

    此外,了解Ruby的块(block)、 Proc 和 Lambda 以及闭包的概念也至关重要。 二、Ruby面向对象编程 Ruby的核心是面向对象,因此理解类和对象的关系,以及如何通过继承、模块混入(include)来扩展功能是非常重要的...

    code4testers_fundamentos

    Ruby还支持块(Block),它类似于匿名函数,可以作为参数传递给方法。 4. **面向对象编程** Ruby的核心特性是其强大的面向对象编程(OOP)能力。每个值在Ruby中都是一个对象,每个类都是一个对象,甚至类也是它们...

    Ruby 迭代器知识汇总

    cutcome = {"block1" =&gt; 1000, "book2" =&gt; 1000, "book3" =&gt; 4000} cutcome.each { |item, price| sum += price } print "sum = " + sum.to_s ``` 或者,也可以使用更简洁的形式: ```ruby sum = 0 cutcome.each {...

    scale_your_code:我的Scale Your Code面试期间使用的代码

    《Scale Your Code面试指南:基于Ruby的代码优化与扩展》 在编程领域,代码规模的扩展性是衡量软件系统质量的重要标准之一。"Scale Your Code"不仅是一个面试话题,更是一种编程理念,它关注如何在代码量增长、用户...

    举例讲解Ruby中迭代器Iterator的用法

    A Ruby iterator is simple a method that can invoke a block of code. Block 一般是跟着 method 出现的, 并且 block 中的代码不一定会执行 如果 method 中有 yield, 那么它的block 中的代码会被执行 Block 可以...

    简要说明Ruby中的迭代器

    在Ruby中,迭代器通常是通过块(block)来实现的,这是一种匿名函数的形式。 首先,我们来看`each`迭代器。`each`是最常用的迭代器之一,用于遍历数组或散列的所有元素。它的基本语法是: ```ruby collection.each...

    middleman-backtick:中间人的backtick_code_blocks(如octopress')

    中间人反t 中间人的backtick_code_blocks(如octopress') === 快速开始 ... activate :backtick_code_block 句法 ``` [language] [title] [url] [link text] code snippet ``` 例子 笔记 受启发

Global site tag (gtag.js) - Google Analytics