`

Ruby的try 方法

阅读更多
This is something we’re using on GitHub that I really wish I started using sooner. For lack of a better name, it’s called try().

It works like this:

def remove_email(email)                                                                                         
  emails.find_by_email(email).try(:destroy)                                                                     
end  

Another example:

file_type = file_types.detect { |key,| name.include? key }.try(:last)

Lucky little Io has this idea baked in:

task ?invoke

And, of course, Objective C has something similar.

Here it is in Ruby:

class Object
  ##
  #   @person ? @person.name : nil
  # vs
  #   @person.try(:name)
  def try(method)
    send method if respond_to? method
  end
end

Enjoy
分享到:
评论

相关推荐

    ruby入门到精通

    7. **异常处理**:Ruby提供了try-catch机制来处理程序运行时可能出现的错误,通过rescue关键字来捕获并处理异常。 8. **文件和I/O操作**:学习如何读写文件,进行标准输入输出操作,以及如何处理文件流。 9. **...

    Python & Ruby 学习

    4. **方法定义**:Ruby 允许在任何地方定义方法,包括在类或对象实例上。 5. **Ruby on Rails**:Ruby 最知名的Web框架,提供MVC(模型-视图-控制器)架构,简化Web开发。 6. **Gems**:Ruby 的包管理系统,类似 ...

    ruby基础教程中文第四版

    6. **异常处理**:Ruby提供了try-catch机制,通过`begin-rescue-end`来处理程序运行时可能出现的错误。 7. **元编程**:Ruby的强大之处在于它的元编程能力,可以动态地修改类和对象的行为。`define_method`、`send`...

    TryRuby:Try Ruby是一个交互式外壳,可以快速而异想天开地教授Ruby编程语言。 最初是_why的想法,它是由对Ruby充满热情并教他们的同伴(女性)如何编程的Rubyists从头开始重新创建的。

    试试Ruby! 版本2(已淘汰) 这是TryRuby的源代码! 版本2。如果要查看原始版本,请运行TryRuby! 版本2代码,然后签出旧版分支。 该代码库已过时。 值得庆幸的是,TryRuby上还有一个新版本! 基于opalrb的版本4。 ...

    Ruby的25个编程细节(技巧、实用代码段)

    在Ruby中,`try` 方法是一个非常有用的功能,它允许我们安全地访问对象的方法或属性,即使该对象为 `nil` 也不会抛出异常。相反,如果没有找到对象或者对象为 `nil`,`try` 会返回 `nil`。 **示例代码:** ```ruby ...

    Ruby程序设计.doc

    Ruby提供了try/catch风格的异常处理机制。 **9.2 定义异常类** 可以定义自定义的异常类来处理特定类型的错误。 **9.3 catch和throw** `catch` 和 `throw` 是用于异常传递的关键字。 #### 十、多任务处理 **...

    ruby 程序设计

    - **默认返回值**:Ruby方法的最后一句表达式的值即为方法的返回值。 - **显式返回值**:使用`return`关键字显式指定返回值。 #### 八、模块 ##### §8.1 名字空间 - **概念**:模块可以作为名字空间,避免名称...

    Ruby语言入门教程

    6. **异常处理**:Ruby提供了try-catch机制,通过`begin-rescue-end`结构来捕获和处理异常。 7. **模块(Module)**:Ruby的模块用来实现命名空间、多重继承和混合(mixin)功能。模块可以包含方法、常量和类定义,...

    ruby-0.49源代码

    6. **异常处理**:Ruby的异常处理机制,如try-catch结构的实现。 7. **元编程**:Ruby的元编程能力,如何在运行时修改或创建代码。 8. **标准库**:早期版本的标准库组件,如何实现常用功能,如数组、哈希、字符串...

    Ruby 语法. Ruby 是一种开源的面向对象程序设计的服务器端脚本语言

    - **块与迭代器**:Ruby 中的块(Block)可以作为参数传递给方法,并且 Ruby 提供了丰富的迭代器(Iterator)支持。 #### 五、Ruby 语言进阶知识点 - **符号(Symbol)**:Ruby 中的 Symbol 类型是一种不可变的字符串,...

    ruby语言入门教程-自学笔记

    Ruby支持多种控制结构,包括条件语句(if-else)、循环语句(for、while、until、each等)和异常处理(try-catch-finally)。 示例代码: ```ruby # 条件语句 num = 10 if num > 10 puts "Number is greater than...

    ruby入门中文合集

    4. **异常处理**:掌握Ruby中的异常处理机制,学习try-catch语法,了解如何捕获和处理程序运行时可能出现的错误。 5. **模块和命名空间**:了解模块的作用,如何使用它们来组织代码,以及它们在实现多重继承和防止...

    Ruby程序设计高级教程

    - **RubyGems**:Ruby包管理器的使用方法,包括安装和管理第三方库。 #### 三、类与对象 - **类的定义**:介绍如何定义一个类,包括类的基本结构和语法。 - **对象、属性和方法**: - 创建对象的方法。 - 属性和...

    Ruby语言入门

    6. **异常处理**:Ruby使用`begin...rescue...else...ensure`结构进行异常处理,类似于其他语言的try...catch...finally。 7. **Gem包管理**:Ruby的生态系统中有丰富的第三方库,这些库以Gem的形式存在。通过`gem`...

    Ruby语言入门教程V1.0

    - **错误处理**:讨论异常处理机制,包括try/catch等关键字的使用,以及如何编写健壮的程序。 - **模块与库**:讲解如何利用Ruby的标准库或第三方库来扩展功能,提高开发效率。 通过这些章节的学习,读者将能够建立...

    ruby2.6.5-1-x64.zip

    ruby官网文件,但官网的安装包下载速度过于缓慢, 此安装包的版本是2.6.5-1-x64 如果您不知道要安装哪个版本,并且开始使用Ruby,建议您使用Ruby + Devkit 2.6.X(x64)安装程序。它提供了最多数量的兼容gem,并与...

    Apress - Practical Ruby Projects (Dec 2007)

    3. **异常处理**:学习如何在Ruby中捕获和处理错误,理解try-catch机制,以及何时和如何使用异常类。 4. **元编程**:Ruby的元编程能力是其独特之处,书中可能会讲解动态方法定义、反射API以及在运行时修改代码的...

    Ruby编程语言中基础和高级控制结构详解

    :)和异常处理(try、rescue、ensure)。每个控制结构都有详细的语法说明和示例代码,帮助读者理解和掌握其使用方法。 适合人群:具有编程基础,对Ruby感兴趣的学习者和开发者。 使用场景及目标:帮助初学者和有一定...

    Ruby语言教程合集(2本).zip

    5. **异常处理**:Ruby提供了try...catch...finally语句来处理程序运行中的异常情况,帮助开发者捕获并处理错误。 6. **元编程**:Ruby的元编程能力强大,允许在运行时修改或创建类和对象,这使得代码具有很高的...

Global site tag (gtag.js) - Google Analytics