`

Returning

    博客分类:
  • Ruby
阅读更多
我们经常做的事情是创建一个对象,操作这个对象,然后返回这个对象:
def build_options
  options = Hash.new
  options[:key1] = 'value1'
  options[:key2] = 'value2'
  options 
end

Rails提供了returning,使用ruby最常用的block技术,简化这个步骤:
class Object
 def returning(value)
     yeild (value)
     return value  
 end
end

现在我们的代码:
def build_options
 returning Hash.new do |options|
   options[:key1] = 'value1'
   options[:key2] = 'value2'
 end
end

分享到:
评论
3 楼 fuliang 2010-12-31  
尝试一下Object#tap:

def build_options
Hash.new.tap do |options|
   options[:key1] = 'value1'
   options[:key2] = 'value2'
end
end


貌似是这么做的

class Object
def tap
     yeild (self)
     return self 
end
end
2 楼 fuliang 2010-12-31  
RednaxelaFX 写道
Ruby 1.9的话有Object#tap也是类似用途,相当方便

看看,原来1.9已经有了这个。
1 楼 RednaxelaFX 2010-12-31  
Ruby 1.9的话有Object#tap也是类似用途,相当方便

相关推荐

    如何在Spring Boot中使用@AfterReturning注解

    1. **明确横切关注点**:在使用@AfterReturning 之前,确保你已经识别出了需要在目标方法执行后处理的横切关注点,如日志记录、性能监控或事务管理。 2. **合理定义切入点**:使用切入点表达式精确地定义哪些方法...

    Python库 | django_pg_returning-1.0.0-py2.py3-none-any.whl

    python库。 资源全名:django_pg_returning-1.0.0-py2.py3-none-any.whl

    findbugs:may expose internal representation by returning

    《深入理解FindBugs:可能通过返回暴露内部表示——“NULL”问题分析》 在软件开发过程中,确保代码的质量和安全至关重要。FindBugs作为一款静态代码分析工具,能够帮助开发者在程序运行前发现潜在的问题。...

    attr_copy.rar_The Returning

    "attr_copy.rar_The_Returning"这个标题暗示我们关注的是一个与复制文件属性相关的程序或函数,可能是一个C语言编写的源代码文件,即"attr_copy.c"。这个程序的功能是复制一个属性列表,并返回所占用的字节数。 `...

    《Pro Oracle SQL》CHAPTER 9 The Model Clause -- 9.4Returning Updated Rows

    9.4小节“Returning Updated Rows”讨论了在执行Model操作后如何获取更新后的行。在执行涉及Model子句的DML操作时,我们可能需要查看或验证哪些行被修改了,或者新状态是什么。通常,SQL更新操作不会返回更新的行,...

    An Eco-tour of returning to nature.zip

    "An Eco-tour of returning to nature.zip"这个压缩包文件为我们提供了一份关于生态旅游的详细资料,引领我们踏入一场回归自然的探索之旅。 首先,生态旅游(Eco-tourism)是一种尊重环境、保护生物多样性和促进...

    oracle RETURNING 子句使用方法

    Oracle的RETURNING子句是数据库操作中的一个强大特性,它允许在执行INSERT、UPDATE或DELETE语句时直接获取处理的数据结果。这在处理事务时非常有用,尤其是当你需要基于新插入或更新的数据进行进一步操作时。 1. **...

    returning-DOM-elements-javascript-源码.rar

    标题 "returning-DOM-elements-javascript-源码.rar" 暗示了这是一个关于使用JavaScript操作和检索DOM元素的源代码集合。DOM(Document Object Model)是HTML和XML文档的结构化表示,允许通过编程方式访问和修改文档...

    Spring AOP定义AfterReturning增加实例分析

    Spring AOP 定义 AfterReturning 增加实例分析 Spring AOP (面向方面编程) 是 Spring 框架中的一种编程范式,旨在将切面编程融入到应用程序中。AfterReturning 是 Spring AOP 中的一种Advice (通知),它在目标方法...

    解决FLUSH、CMPLT、BKGND资源占用过高的问题

    Dec 17 13:59:26 localhost kernel: PAL Shim AllocRequest returning NULL Dec 17 13:59:26 localhost kernel: PAL Shim AllocRequest returning NULL Dec 17 13:59:26 localhost kernel: PAL Shim AllocRequest ...

    The specified CGI application misbehaved by not returning a complete set of HTTP headers

    是错误报告: The specified CGI application misbehaved by not returning a complete set of HTTP headers 意思是:(http协议的CGI模式运行不正确) 因为perl脚本的第一句中不支持 -wT 参数,将所有的 -wT 替换成...

    findbugs常见Bug以及处理办法

    - **May expose internal representation by returning reference to mutable object**:调用get方法,获得对象属性,获得的对象属性是一个可变的对象。 - **描述**:返回内部可变对象的引用,可能会导致外部实体...

    spring aop 实例

    我们可以通过实现`AfterReturningAdvice`接口并定义一个`afterReturning`方法来创建此类通知。这个方法接收四个参数:返回值、目标对象、方法名和方法参数,这使得我们可以访问方法执行的所有相关信息。 2. **...

    net framework 4 安装失败

    Returning IDOK.INSTALLMESSAGE_ERROR[无法将数值 PresentationHost.exe 写入键] \Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_LEGACY_COMPRESSION。请验证您对该键拥有足够的访问权限,或者...

    Function Parameters Returning Values.rar_C++_MM4L_grain3ne_retur

    在C++编程语言中,函数是执行特定任务的代码块,可以接受输入(参数)并产生输出(返回值)。函数的返回值是函数执行完成后传递回调用位置的数据。本主题将深入探讨C++中函数参数及返回值的使用。...

    returning-DOM-elements-javascript

    `returning-DOM-elements-javascript`这个主题主要聚焦于如何在JavaScript中获取和操作DOM元素。下面将详细讨论相关知识点。 1. **选择DOM元素** - `getElementById()`: 这是JavaScript中最基本的选择方法,通过...

    Function_pointer_returning_function_pointer

    在给定的“Function_pointer_returning_function_pointer”示例中,`main.c`文件可能包含这样的代码。这个文件可能展示了如何定义、分配和使用返回函数指针的函数。它可能包含多个函数定义,每个函数处理不同的任务...

Global site tag (gtag.js) - Google Analytics