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
分享到:
相关推荐
7. **异常处理**:Ruby提供了try-catch机制来处理程序运行时可能出现的错误,通过rescue关键字来捕获并处理异常。 8. **文件和I/O操作**:学习如何读写文件,进行标准输入输出操作,以及如何处理文件流。 9. **...
4. **方法定义**:Ruby 允许在任何地方定义方法,包括在类或对象实例上。 5. **Ruby on Rails**:Ruby 最知名的Web框架,提供MVC(模型-视图-控制器)架构,简化Web开发。 6. **Gems**:Ruby 的包管理系统,类似 ...
6. **异常处理**:Ruby提供了try-catch机制,通过`begin-rescue-end`来处理程序运行时可能出现的错误。 7. **元编程**:Ruby的强大之处在于它的元编程能力,可以动态地修改类和对象的行为。`define_method`、`send`...
试试Ruby! 版本2(已淘汰) 这是TryRuby的源代码! 版本2。如果要查看原始版本,请运行TryRuby! 版本2代码,然后签出旧版分支。 该代码库已过时。 值得庆幸的是,TryRuby上还有一个新版本! 基于opalrb的版本4。 ...
在Ruby中,`try` 方法是一个非常有用的功能,它允许我们安全地访问对象的方法或属性,即使该对象为 `nil` 也不会抛出异常。相反,如果没有找到对象或者对象为 `nil`,`try` 会返回 `nil`。 **示例代码:** ```ruby ...
Ruby提供了try/catch风格的异常处理机制。 **9.2 定义异常类** 可以定义自定义的异常类来处理特定类型的错误。 **9.3 catch和throw** `catch` 和 `throw` 是用于异常传递的关键字。 #### 十、多任务处理 **...
- **默认返回值**:Ruby方法的最后一句表达式的值即为方法的返回值。 - **显式返回值**:使用`return`关键字显式指定返回值。 #### 八、模块 ##### §8.1 名字空间 - **概念**:模块可以作为名字空间,避免名称...
6. **异常处理**:Ruby提供了try-catch机制,通过`begin-rescue-end`结构来捕获和处理异常。 7. **模块(Module)**:Ruby的模块用来实现命名空间、多重继承和混合(mixin)功能。模块可以包含方法、常量和类定义,...
6. **异常处理**:Ruby的异常处理机制,如try-catch结构的实现。 7. **元编程**:Ruby的元编程能力,如何在运行时修改或创建代码。 8. **标准库**:早期版本的标准库组件,如何实现常用功能,如数组、哈希、字符串...
- **块与迭代器**:Ruby 中的块(Block)可以作为参数传递给方法,并且 Ruby 提供了丰富的迭代器(Iterator)支持。 #### 五、Ruby 语言进阶知识点 - **符号(Symbol)**:Ruby 中的 Symbol 类型是一种不可变的字符串,...
Ruby支持多种控制结构,包括条件语句(if-else)、循环语句(for、while、until、each等)和异常处理(try-catch-finally)。 示例代码: ```ruby # 条件语句 num = 10 if num > 10 puts "Number is greater than...
4. **异常处理**:掌握Ruby中的异常处理机制,学习try-catch语法,了解如何捕获和处理程序运行时可能出现的错误。 5. **模块和命名空间**:了解模块的作用,如何使用它们来组织代码,以及它们在实现多重继承和防止...
- **RubyGems**:Ruby包管理器的使用方法,包括安装和管理第三方库。 #### 三、类与对象 - **类的定义**:介绍如何定义一个类,包括类的基本结构和语法。 - **对象、属性和方法**: - 创建对象的方法。 - 属性和...
6. **异常处理**:Ruby使用`begin...rescue...else...ensure`结构进行异常处理,类似于其他语言的try...catch...finally。 7. **Gem包管理**:Ruby的生态系统中有丰富的第三方库,这些库以Gem的形式存在。通过`gem`...
- **错误处理**:讨论异常处理机制,包括try/catch等关键字的使用,以及如何编写健壮的程序。 - **模块与库**:讲解如何利用Ruby的标准库或第三方库来扩展功能,提高开发效率。 通过这些章节的学习,读者将能够建立...
ruby官网文件,但官网的安装包下载速度过于缓慢, 此安装包的版本是2.6.5-1-x64 如果您不知道要安装哪个版本,并且开始使用Ruby,建议您使用Ruby + Devkit 2.6.X(x64)安装程序。它提供了最多数量的兼容gem,并与...
3. **异常处理**:学习如何在Ruby中捕获和处理错误,理解try-catch机制,以及何时和如何使用异常类。 4. **元编程**:Ruby的元编程能力是其独特之处,书中可能会讲解动态方法定义、反射API以及在运行时修改代码的...
5. **异常处理**:Ruby提供了try...catch...finally语句来处理程序运行中的异常情况,帮助开发者捕获并处理错误。 6. **元编程**:Ruby的元编程能力强大,允许在运行时修改或创建类和对象,这使得代码具有很高的...